Faculdade de Ciências e Tecnologia

Specific Domain Language

Code

8287

Academic unit

Faculdade de Ciências e Tecnologia

Department

Departamento de Informática

Credits

6.0

Teacher in charge

Ana Maria Dinis Moreira, Vasco Miguel Moreira do Amaral

Weekly hours

4

Teaching language

Português

Objectives

Objectives

Knowledge
  • Understand the risks and opportunities of developing a DSL over GPL solution.
  • Learn methods of Domain Analysis.
  • Learn formal and practical tools for developing DSLs relating this knowledge with the one previous acquired in other classes.
  • Learn several typical domains of application of DSLs.
  • Know how to evaluate a language under the point of view of usability.
  • The complete Language Engineering Process
Know-how
  • Given a domain specific problem, know how to implement a DSL from scratch.
  • Know how to use up to date technology (tools) to develop DSLs.
  • Follow and understand the up-to-date developments of DSLs research community.
Soft-Skills
  • Develop written and oral presentation skills. Develop a critic attitude.
  • Abstract modeling skills. Model problems.
  • Develop effective solutions.

Subject matter

  • Motivation for a DSL (Domain Specific Languages)
  • Definition of DSL
  • Advantages Vs. Disadvantages of DSL
  • Comparing DSL Vs. GPL (General Purpose Language)
  • Textual Vs. Visual Languages
  • Software Languages Engineering
  • Feature Models (formal definition)
  • Introduction to Domain Engineering
  • Model-Driven Design and Software product Lines concepts
  • Formal Based approach for DSL design
  • The concept of Language Meta-Modeling (Meta-Modeling tools)
  • Language Abstract and Concrete Syntax
  • Well-formedness issues (e.g of imposing constraints with OCL)
  • Language Semantics
  • Model transformations and model Composition
  • Traditional DSL implementation strategies
  • DSL Case Studies in different domains
  • DSL Experimental Evaluation and Validation

Bibliography

Recommended Book and Reading:

  • "DSL Engineering - Designing, Implementing and Using Domain-Specific Languages", Markus Voelter, 2012.
  • Collection of papers approaching the topics introduced during the lectures.Collection of slides for the theoretical and labs classes. Collecion of proposed exercises.

Extra Related Reading:

  • Steven Kelly, Juha-Pekka Tolvanen, "Domain-Specific Modeling", IEEE Wiley, 2008
  • "Generative Programming Methods, Toolss and Applications", Krzystof Czarnecki, Ulrich Eisenecker,Addison-Wesley, 2000.
  • "Software Factories", Jack Greenfield and Keith Short, Wiley Publishing , 2004.
  • "Introduction to the Theory of Programming Languages", bertrand Meyer, Prentice Hall, 1990.
  • "Software Language Engineering: Creating Domain-Specific Languages Using Metamodel", Anneke Kleppe,Addison-Wesley Professional; 1st edition, 2008.

Evaluation method

**Can be subjtect to small changes **

The assessment is divided into the obligatory parts: a practical work with small deliverables along the semester; two tests. Practical work and are done in groups and tests, individually.

The score is a weighted average of the practical work (60%) and tests score (40%).

Practical work (60%): A compulsory practical work delivered in small delverables: i) Domain Analysis (5%), ii)Visual and Textual language Editor w/ generation (25%), iii) Verification and Validation (20%) iv)(5%) Final report with questionary, revision of collegues'' reports  and presentation in workshop. For frequency, the mean of all phases should be greater than or equal to 9.5.

Two tests: Each test worths 20% of final grade with a minimum grade of 9,5.

The final grade is a weighted average of the grades of the tests (40%) practical work (60%).

Access to the re-sit exam period are for students who have frequency, but not achieved a satisfactory performance in continuous assessment, averaging between 9.5 and 20, or who wish to improve.

For students with average frequency and <9.5, an exam worth 40%. The other 60% is the average obtained in the two phases of the practical work. Students who fail to deliver any work parties 1 and 2 are classified as "Absent".

To grade improvements made ​​at the time of the re-sit exam of the semester in which approval has been obtained in the discipline, the rules for calculating the score are : the final grade is the grade of the exam. Grades improvements for previous semesters are made exclusively by examination at the time of appeal or special time, being the final mark obtained in the exam.

For special exam (época especial), the final grade is the grade of the exam.

Courses