Разделы
  • Фантастика
  • Детективы
  • Поэзия
  • Приключения
  • Детские
  • Любовные книги
  • Периодика
  • Религия
  • Новые книги
    Епископ Кассиан - Христос и первое христианское Поколение
    Епископ Вениамин (Пушкарь) - Священная Библейская история Нового Завета
    Епископ Вениамин (Пушкарь) - Священная Библейская История Ветхого Завета
    Епископ Александр (Милеант) - Таинства Церкви
    Епископ Александр (Милеант) - Священное писание Нового Завета
    Епископ Александр (Милеант) - Священное Писание Ветхого Завета
    Епископ Александр (Милеант) - Изьяснение Божественной Литургии
    Житинский - Японский бог
    Житинский - Языковой барьер
    Житинский - Элтон Джон
    Популярные книги
    Журнал Вокруг Света 3 за 2005 год
    Журнал Вокруг Света 12 за 2004 год
    Журнал Вокруг Света 1 за 2005 года
    Журнал Вокруг Света 11 за 2004 год
    Журнал Вокруг Света 6 за 1998 год
    Журнал Вокруг Света 11 за 2003 год
    Житинский - На холмах Мисуно
    Житинский - Японский бог
    Журнал Вокруг Света 1 за 1999 год
    Житинский - Китайская мышь
    Лучшие книги
    Желязны - The Three Descents Of Jeremy Baker I
    Житинский - Глагол инженер
    Журнал Вокруг Света 2 за 2001 год
    Журнал Вокруг Света 12 за 1997 год
    Житинский - Прах
    Журнал Вокруг Света 7 за 1995 год
    Житинский - Прыжок в висоту
    Журнал Компьютерра 33 от 13 сентября 2005 года
    Журнал Вокруг Света 10 за 2004 год
    Желязны, Плахта - Год Плодородного Зерна
    Cтатистика
     

    Процесс разработки

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 
    35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 
    70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 
    105 

    Обобщая, можно выделить следующие этапы разработки приложений с участием языковых инструментариев:

    1. Cоздание прототипа, содержащего частичную реализацию минимально необходимого набора бизнес-функций («скелет» будущего приложения).

    2. Определение существенных абстракций проекта, разработка DSL.

    3. Создание метапрограмм-генераторов для понятий DSL.

    4. Перевод разработанного прототипа приложения в окружение языкового инструментария.

    5. Реализация бизнес-функций проекта в терминах DSL.

    6. Автоматическая генерация исходных текстов на языке реализации проекта.

    Этапы 2–6 схематически изображены на диаграмме (рис. 5), там же показана взаимосвязь между языковыми инструментариями и классическими средами разработки.

    Возможно, многим покажется, что вышеописанный подход к разработке – не более чем преодоление трудностей, которые мы сами же себе и создали, приняв решение вести проект системы на DSL, однако список полученных при этом преимуществ весьма внушителен:

    полностью подавляется расхождение проекта и исходного кода. Высокоуровневые абстракции проекта, записанные на DSL, связаны с кодом реализации проекта. При этом проект всегда остается актуальным, ведь изменения исходного кода теперь вторичны по отношению к изменениям в самом DSL;

    облегчаются доработки проекта под изменившиеся требования заказчика. Этому способствует сама философия метапрограммирования: DSL как бы параметризует проект. При небольших изменениях проекта разработчику нужно лишь слегка модифицировать конкретную конфигурацию, описанную на DSL. Серьезные изменения, затрагивающие предметную область, тоже становятся проще, поскольку в таких случаях алгоритм действий четко определен: вначале модифицируем сам DSL и редакторы для него, а затем – генераторы исходного кода на языке реализации;

    упрощается управление проектом. Например, при вхождении в проект новых участников для получения общего представления о проекте (в его актуальном состоянии!) достаточно показать им лишь ту часть исходного кода, которая записана на DSL. Более того, взаимодействие между участниками проекта становится эффективнее. Допустим, аналитик проекта, хорошо представляющий себе бизнес-логику приложения, теперь сможет самостоятельно описывать на DSL ее отдельные части[В принципе, достаточно лишь понимания аналитиком кода на DSL. При этом он (как правило, все же, она) сможет на словах рассказать разработчикам, что нужно сделать, а затем, просмотрев код на DSL, проконтролировать их работу]. При этом проект избавляется от лишних документов, а разработчики – от их прочтения (на что тоже нужно время) и двусмысленного толкования;

    становится возможным повторное использование DSL в схожих проектах. Все разработанные DSL, подобно общим библиотекам компонентов, становятся серьезным активом компании-разработчика, поскольку являются квинтэссенцией опыта компании и допускают повторное использование в будущих проектах.

    На мой взгляд, в настоящий момент у языковых инструментариев существует только один серьезный недостаток: риск попадания в зависимость от поставщика программного обеспечения. Дело в том, что сейчас DSL жестко привязан к языковому инструментарию, при помощи которого он был разработан. И если в мире Microsoft этот вопрос отпадает автоматически (ввиду тотального характера зависимости), то для будущих пользователей MPS он вполне актуален, даже несмотря на то, что все файлы проекта MPS хранятся в открытом формате XML. Разумеется, это не является непреодолимым препятствием на пути к использованию языковых инструментариев, тем более что стандартизация в этой области станет возможной лишь с появлением на рынке конкурирующих и несовместимых друг с другом продуктов. Просто к списку технологических рисков проекта добавляется еще один пунктик.

    baltchor.com
    Главная | Книги | Обратная связь
    © 2009 Книги на сайте представлены исключительно для ознакомления.