Здравствуйте, не могу найти ссылку на скачивание курса «Визуальное моделирование: теория и практика»
Номер платежа 6400454020565 |
О строении визуальных языков
Семантика
При создании DSL, после того, как определены конструкции языка и правила, по которым они составляют тексты, определяется смысл этих конструкций, то есть их проекции в предметную область языка. В примере, представленном на рис. 11.3, рис. 11.4, в область семантики попадают определения компоненты, порта и интерфейса, которые давались в предыдущих лекциях. Точнее, семантическая часть этих определений, где рассказывается, что они означают, а не та, где говорится, что, например, порт - это конструкция UML, которая входит в компоненту, может иметь имя, множественность, к ней присоединяются интерфейсы и т. д. Это - синтаксическое определение. А вот когда объясняется, что порт - это абстракция точки соединения компоненты с внешним миром, а также с элементами внутренней структуры компоненты, что порты в UML очень похожи на разъемы аппаратных узлов и т. д., то речь идет о семантике этой конструкции.
Далее, семантика конструкций визуального языка должна еще более уточняться в случае, когда по визуальным спецификациям генерируется программный код. Здесь в предметную область языка моделирования попадает платформа реализации системы - конструкции языка моделируют не только абстракции бизнес-области, но также и абстракции исполнения на вычислителе. Такая семантика носит названия исполняемой семантики (executable semantic4Этот термин уже неоднократно использовался в других лекциях. Теперь он получил, наконец, объяснение. ). Так, например, множественный порт может переходить в массив, где имя массива соответствует имени порта, ячейка массива соответствует экземпляру порта, а значение ячейки содержит указатель на другой экземпляр порта, с которым соединяется данный. Исполняемой семантикой конструкции UML "класс" является класс в языках С++, С#, Java и т. д.
К сожалению, на данный момент для языков программирования и визуальных языков не существует общеупотребимого способа задавать семантику, в том числе и исполняемую. В DSM-платформах, как правило, есть лишь способы удобной спецификации генераторов кода, где можно задать, какой именно текст нужно генерировать по той или иной конструкции, по модели в целом.
Прагматика
В эту часть описания языка попадает все, связанное с его использованием - пользователи (их потребности, образование, пристрастия и пр.), правила использования языка на практике (метод), требования к программным средствам поддержки визуальных языков и сами эти средства. Никаких формальных средств для задания прагматики языков программирования и визуальных языков не существует. Однако в случае DSL здесь можно порекомендовать использовать диаграммы случаев использования, поскольку информация о способах использования языка, фактически, является способом использования программного инструмента, поддерживающего его. Такое отождествление тем более правомерно, что на практике нужен все-таки не язык, а удобный программный инструмент.
Контрольные вопросы
- Дайте определение понятиям "текст" и "язык".
- Что такое предметная область языка, а также его пользователь?
- Дайте определение синтаксиса, семантики и прагматики языка. Приведите свои примеры.
- Что такое конструкция языка и почему в лекции оно используется вместо понятия "знак"?
- Зачем понадобилось разбивать синтаксис визуальных языков на абстрактный, конкретный и служебный? Приведите примеры из других областей, где такое разделение уместно.
- Дайте определение абстрактному синтаксису.
- Перечислите формальные средства, которые используются для спецификации абстрактного синтаксиса.
- Что такое конкретный синтаксис?
- Перечислите и охарактеризуйте способы, которые можно использовать для его задания. Объясните, в каких случаях, по вашему мнению, использование каждого из них оправдано.
- Расскажите, что можно отнести к конкретному синтаксису языков программирования.
- Что такое служебный синтаксис?
- Какой способ является наиболее распространенным для описания служебного синтаксиса визуальных языков? Каковы его преимущества перед хранением визуальных моделей в закрытом формате?
- Расскажите, зачем, на ваш взгляд, нужен стандарт XMI.
- Расскажите о спецификации диаграммной информации, в том числе приведите аргументы "за" и "против" стандартных форматов диаграммных представлений визуальных моделей.
- Почему при экспорте UML-диаграмм в средства работы с векторной графикой (CorelDraw, Potoshop и пр) граф модели не нужен?
- Приведите пример синтаксического и семантического определения конструкции какого-либо языка, произвольного понятия. Какие определения (в науке, в жизни, на экзамене, наконец) вы склонны давать сами - синтаксические или семантические?
- Что такое исполняемая семантика визуального языка? Что значит, что некоторая исполняемая платформа (например, Java-машина) попадает в предметную область визуального языка?
- Что является исполняемой семантикой состояния, перехода, сообщения (приема и посылки) в диаграммах конечных автоматов UML (вспомните лекции про системы реально времени)?
- Правда ли, что UML строго фиксирует исполняемую семантику своих конструкций?
- Расскажите о прагматике визуальных языков.
- Как можно использовать диаграммы случав использования для задания прагматики DSL? Приведите свой пример.