Факультатив на английском языке

Приглашаем на факультатив «От Unified Modeling Language (UML) к предметно-ориентированным языкам. Как разработать свой язык» (на английском языке) по направлению 09.04.01 «Информатика и вычислительная техника» студентов 1 и 2 курса магистратуры ФИТ, а так же заинтересованных магистрантов ФФ и ММФ.

Лектор: Профессор Томас Баар, Hochschule für Technik und Wirtschaft Berlin (HTW Berlin).

Вводная лекция состоится 22 сентября, в 19-30, ауд 402 ГК НГУ.

Регистрация на факультатив обязательна (ссылка)

Аннотация

Unified Modeling Language (UML) является популярной графической нотацией для объектно-ориентированного анализа и дизайна. Он дает возможность разработчикам ПО отобразить как внутреннюю структуру, так и поведение реализуемой системы с разными уровнями детализации.

UML особенно удобен для взаимодействия между разработчиками и другими заинтересованными лицами при обсуждении программной системы. Также было предпринято несколько попыток автоматического генерирования кода из UML моделей, результат нельзя назвать абсолютно успешным.

Примерно 10 лет назад появился новый класс языков моделирования, так называемые предметно-ориентированные языки (Domain-Specific Languages, DSLs). DSL обычно определяется для некоторой области или даже для конкретного проекта по разработке ПО. Хороший предметно-ориентированный язык предлагает в точности те конструкции, которые необходимы для конкретной предметной области или проекта.

Преимущество по сравнению с UML состоит в том, что DSL дает возможность создавать эффективные генераторы кодов. На практике в проекте по реализации ПО разработчик может легко автоматизировать реализацию больших фрагментов кода путем (1) создания соответствующего предметно-ориентированного языка и (2) написанием генератора кода для языка, на котором реализуется проект.

В этом курсе вы изучите, как предметно-ориентированный язык может ускорить создание ПО.

Мы определим синтаксис для текстовых предметно-ориентированных языков, используя свободно-распространяемый фреймворк Xtext. Большая часть данного фреймворка была разработана немецкой компанией Itemis GmbH. На основе определения DSL Xtext автоматически генерирует редактор с автодополнением кода, подсветкой синтаксиса, отменой последних операций и т.д. Более того, мы сделаем генераторы кода, которые могут работать на DSL-моделях, автоматически преобразуя код в заданный язык программирования (например, C, C++ или Java).

Предполагаемая аудитория

Студенты, которые знакомы с концепцией ООП, знают хотя бы один ОО язык (например, C++, Smalltalk, Java). Знание UML и Java будет преимуществом.

О лекторе. Томас Баар (Thomas Baar) имеет диплом по Computer science (Humboldt-University Berlin) и ученую степень доктора наук (Technical University Karlsruhe, Germany). В 2002 году Т.Баар защитил диссертацию, он предложил Object Constraint Language (OCL), который является частью UML, семантика была полностью предложена в форме метамодели С 2003 по 2007 Т.Баар работал в École Polytechnique Fédérale de Lausanne (EPFL), Швейцария, разрабатывая синтаксис для graphical modeling languages. Далее его научная группа разработала инструмент для рефакторинга UML/OCL моделей. С 2007 по 2011 он работал senior software engineer в небольшой компании в Берлине, Германия. С 2011 Томас Баар является профессором software engineering в Hochschule für Technik und Wirtschaft Berlin (HTW Berlin). HTW Berlin – один из самых больших университетов по прикладным наукам (около 13 000 студентов) в Германии, ведется образование по широкому спектру программ

Title: From the Unified Modeling Language (UML) to Domain-specific Languages (DSLs) How to Build your own Language

Lecturer: Prof. Dr. T. Baar; Guest Lecturer from HTW Berlin, Berlin, Germany

Abstract:

The Unified Modeling Language (UML) is the leading graphical notation for object-oriented analysis and design. It allows software developers to denote the internal structure as well as the behaviour of implemented system at various levels of details. The UML is especially beneficiary for communication among software developers and other stakeholders when discussing about a software systems. There have been also several attempts to automatically generate implementation code out of UML models, but the success of these attempts has been rather limited.

About 10 years ago, a new kind of modeling languages, so-called Domain-Specific Languages (DSLs), appeared. A DSL is typically defined for a certain domain or even just for the current software development project. A good DSL offers exactly those modeling constructs that are needed within the domain or project. As an advantage compared to UML, DSLs allow to formulate effective code generators. In practice, a software developer can easily automate large portions of implementation code in a software development project by (1) inventing an appropriate DSL and (2) by writing a code generator into the implementation language of the project.

In this course you will learn how DSLs can speed up the development of software. We will define the syntax of textual DSLs using the open-source framework Xtext. This framework was mainly developed by the German company Itemis GmbH. Based on the definition of the DSL, Xtext automatically generates a sophisticated editor with code completion, syntax highlighting, Undo-management, etc. Furthermore, we will develop code generators that are able to generate from a DSL-model automatically implementation code into the language of our choice, e.g. C, C++, or Java.

Intended audience:

Students should know the concepts of object-orientation and at least one object-oriented implementation language, e.g. C++, Smalltalk, Java. Knowledge of UML and Java is an asset.

About the lecturer: Thomas Baar holds a diploma degree in computer science from Humboldt-University Berlin and a doctoral degree from Technical University in Karlsruhe, Germany. In his PhD thesis completed in 2002, he proposed for the Object Constraint Language (OCL), which is an integral part of the UML, the first semantics that has been fully given in form of a metamodel. From 2003 to 2007, he worked as a post-doc at the École Polytechnique Fédérale de Lausanne (EPFL), Switzerland, on the concrete syntax definition for graphical modeling languages. Furthermore, his research group implemented a tool for the refactoring of UML/OCL models. From 2007 to 2011, he worked as a senior software engineer for a small company located in Berlin, Germany. Since 2011, he holds a professorship for software engineering at the Hochschule für Technik und Wirtschaft Berlin (HTW Berlin). With about 13.000 students, HTW Berlin is one of the largest universities of applied sciences in Germany and offers a broad spectrum of course programmes.