автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Автоматизированная генерация информационных систем, ориентированных на данные
Автореферат диссертации по теме "Автоматизированная генерация информационных систем, ориентированных на данные"
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
На правах рукописи
Иванов Александр Николаевич
АВТОМАТИЗИРОВАННАЯ ГЕНЕРАЦИЯ ИНФОРМАЦИОННЫХ СИСТЕМ, ОРИЕНТИРОВАННЫХ НА ДАННЫЕ
05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
АВТОРЕФЕРАТ
диссертации на соискание ученой степени кандидата физико-математических наук
Санкт-Петербург 2005
Работа выполнена на кафедре механического факультета Университета.
системного программирования математико-Санкт-Петербургского Государственного
Научный руководитель:
доктор физико-математических наук, профессор Терехов Андрей Николаевич
Официальные оппоненты: доктор технических наук, профессор
Лисс Александр Рудольфович
кандидат технических наук Ицыксон Владимир Михайлович
\
Ведущая организация:
Институт систем информатики им. А.П. Ершова Сибирского Отделения Российской Академии Наук
Защита диссертации состоится " 28 " сентября 2005 года в 14 часов на заседании диссертационного совета Д212.232.51 по защите диссертаций на соискание ученой степени доктора наук при Санкт-Петербургском государственном университете по адресу 198504, Санкт-Петербург, Старый Петергоф, Университетский пр., д. 28, математико-механический факультет Санкт-Петербургского Государственного Университета.
С диссертацией можно ознакомиться в Научной библиотеке Санкт-Петербургского государственного университета по адресу: 199034, Санкт-Петербург, Университетская наб., д. 7/9.
Автореферат разослан " 26 " августа 2005 года
Ученый секретарь диссертационного совета
доктор физико-математических наук, профессор
Общая характеристика работы
Актуальность темы
Хотя создание различных моделей ПО при его анализе и проектировании является общепринятой практикой, возможность использования моделей для генерации кода до сих пор остается предметом дискуссий [6].
Создатели САБЕ-пакетов 70х-90х годов XX века пытались представить процесс разработки системы как последовательное построение взаимосвязанных моделей, на основе которых осуществляется генерация программного кода. Характерными чертами данного подхода являются необходимость детального моделирования системы с разных точек зрения, внутренняя согласованность и взаимосвязь моделей, а также однозначно определенная семантика каждого элемента модели. Однако практика показала, что такой подход требует очень больших накладных расходов, а трудности поддержки итеративного процесса разработки делает его плохо применимым в большинстве реальных проектов. Это привело, в значительной степени, к разочарованию в идее генерации кода по моделям. Многие современные исследователи и практики считают, что модели можно использовать только как наброски, используемые в процессе обсуждения или изложения проблем и концепций. Однако, очевидные преимущества кодогенерационного подхода - снижение времени на разработку и числа ошибок за счет отказа от ручного кодирования заставляют искать новые способы реализации этого подхода, с учетом предыдущих неудач.
Цели работы
Исследовать методы модельно-ориенгированной разработки ПО в применении к информационным системам, ориентированным на данные. Разработать модели пользовательского интерфейса и ограничений на данные. Разработать методику поддержки итеративного процесса разработки при использовании модельно-ориентированного подхода. Реализовать предложенные решения в виде промышленной технологии создания информационных систем.
Основные результаты
В работе получены следующие результаты:
1. Создана модель пользовательского интерфейса ИС, ориентированных на работу с данными, методика ее построения и алгоритм генерации кода по предложенной модели.
2. Расширена модель классов и IV реляционных баз данных.
I-пття прг^к-гирпвдотгя объектно-
РОС. НАЦИОНАЛЬНАЯ БИБЛИОТЕКА
с
09
3. Создан диаграммный язык для описания ограничений на модель классов.
4. Разработана методика поддержки итеративной разработки ПО при использовании генераторов кода ИС по визуальным моделям.
5. Выполнена промышленная реализация выработанных подходов.
6. Проведена апробация представленных решений в ряде промышленных проектов.
Научная новизна
1. Модель пользовательского интерфейса ИС отличается от аналогичных подходов [1,4] богатой микромоделью, позволяющей создавать сложные экранные формы, содержащие такие дополнительные элементы, как фильтры в списках, встроенные списки в карточках и т.д., с привязкой этих элементов к соответствующим элементам модели данных. Кроме того, новым является выделение связей многие-ко-многим как отдельных элементов модели данных, требующих специального представление в пользовательском интерфейсе, и предложение в качестве такого представления экранной формы специального вида - формы-отношения.
2. Методика построения модели интерфейса отличается тем, что в качестве основного способа формирования модели предлагается использовать не работу в графическом редакторе CASE-пакета, а использование специальных мастеров (Wizards), позволяющих построить модель для одной экранной формы и, при необходимости, сразу же сгенерировать код для него. Такой подход позволяет сгладить разрыв между моделированием и WYSIWYG («What You See Is What You Get») подходом, использующемся в большинстве современных средств разработки интерфейса.
3. Расширение модели классов UML для проектирования объектно-реляционных баз данных отличается тем, что является расширением метамодели UML, а не UML-профилем []]. Преимущества такого подхода заключаются в возможности поддерживать целостность представлений и модели данных средствами CASE-пакета, что невозможно в случае профиля.
4. Язык для описания ограничений на модель классов отличается от аналогичных подходов [3,7] тем, что предлагаемые диаграммы обычно «визуально похожи» на ограничиваемый фрагмент модели классов (эта похожесть достигается за счет наличия гомоморфизма между моделью классов и моделью ограничения). Кроме того, синтаксис предлагаемого языка основан на синтаксисе диаграмм кооперации языка UML, что позволяет описать его как профиль UML
и использовать в большинстве CASE-пакетов, поддерживающих UML.
5. Методика поддержки итеративной разработки отличается тем, что позволяет производить повторную генерацию кода в случае изменения исходных моделей, сохраняя при этом, в большинстве случаев, «ручные» доработки сгенерированного кода.
Практическая ценность
Предложенные решения были положены в основу технологии разработки информационных систем REAL-IT, созданной под руководством автора и использованной для разработки ряда ИС для отечественных и зарубежных заказчиков, в том числе линейки продуктов «Студент», «Стипендия», «Аспирант», использующихся на ряде факультетов СПбГУ, АИС БТИ Ленинградской области, а также системы автоматизации управления страховыми контрактами, разработанной в компании BridgeQuest.
Апробация работы и публикации
Результаты диссертации были доложены на всероссийских научно-методических конференциях ТЕЛЕМАТИКА'2002, ТЕЛЕМАТИКА'2003 и семинарах кафедры системного программирования СПбГУ. По теме диссертационной работы было опубликовано 10 научных работ. Работа поддержана грантом РФФИ № 05-0951/07.
Структура и объем диссертации
Диссертационная работа состоит из введения, семи глав, заключения и списка литературы. Работа содержит 130 страниц, 23 рисунка, список литературы из 104 наименований.
Содержание работы
Во введении обосновывается актуальность темы исследования, формулируются цели и задачи работы.
Данная диссертация посвящена разработке подхода к генерации кода информационных систем, ориентированных на данные, на основе визуальных моделей. Характеристическим свойством этого класса систем является тот факт, что наиболее важным архитектурным элементом системы является модель данных и ее реализация - схема БД, а также, что основными компонентами системы являются база данных и интерфейс пользователя.
Направленность на один конкретный класс систем позволяет сузить число используемых моделей и генерировать по ним полностью работоспособное приложение, а использование мастеров (Wizards) -облегчить создание этих моделей, соблюдая их согласованность.
Специальное внимание уделяется интеграции сгенерированного и написанного «вручную» (в т.ч. «поверх» сгенерированного) кода, позволяющей применять предложенный подход в проектах, использующих итеративные процессы разработки.
В первой главе рассматриваются определение и классификация информационных систем, определятся функциональность ИС, ориентированных на данные. В качестве основных функций выделяются функции непосредственной работы пользователя с данными - ввод, просмотр и редактирование.
Во второй главе описываются предлагаемый процесс разработки ИС (рис. 1) в технологии REAL-IT.
Рисунок 1. Процесс соланин ИС в технологии ИЕАНТ
Разработка системы состоит, главным образом, в моделировании основных ее элементов - базы данных и пользовательского интерфейса. Модель данных состоит из двух подмоделей - схемы данных, которая представляет собой стандартную модель классов ИМЬ, и модели
ограничений на данные, которые описываются с помощью предложенного в работе визуального языка.
Модель интерфейса можно разделить на модель представлений, описывающую логическое представление данных для пользователя, и модель экранов, описывающую оконный интерфейс пользователя.
Все эти модели основаны на языке UML и хранятся в репозитории объектно-ориентированного CASE-пакета. Для их построения используются либо редактор диаграмм CASE-пакета, либо специальные мастера (Wizards), входящие в состав REAL-IT.
Наличие собственных моделей означает специализацию UML. В большинстве случаев, для этого достаточно использовать механизм UML-профилей. В частности, как профили можно описать специализации для модели ограничений и модели интерфейса. Однако, использование такого подхода для представлений не обеспечивает необходимого контроля целостности модели, поэтому в работе предлагается использовать в данном случае не профиль, а расширение метамодели TJML специальными элементами, приводится схема метамодели для этого расширения.
По разработанным моделям REAL-IT позволяет автоматически сгенерировать работающее приложение. Возможность такой генерации обеспечивается двумя факторами: стандартизацией пользовательского интерфейса и отсутствием нетривиальной логики обработки данных. В тех случаях, когда эти условия нарушаются, автоматически сгенерированный код приходится дополнять кодом, написанным программистами «вручную». Поскольку в реальных системах такие места обязательно найдутся, архитектура системы предусматривает широкий набор средств для встраивания дополнительных компонент и стыковки их со сгенерированным кодом.
Третья глава посвящена вопросу визуального моделирования ограничений на данные.
Рассматриваются существующие подходы - такие как Visual OCL [3] и Constraint Diagrams [7], анализируются их возможности и недостатки.
Выделяется класс ограничений следующего вида: выделяются два объекта (экземпляры классов), связанные ассоциацией, а также другие, связанные с ними, объекты и ассоциации (их мы будем называть контекстом ассоциации). При этом ассоциация допустима только в том случае, если такой контекст можно построить, т.е. существуют объекты, связанные определенными в контексте ассоциациями.
Для данного класса ограничений предлагается язык описания, основанный на использовании диаграмм кооперации UML.
Каждая диаграмма ограничений представляет собой граф, вершинам которого соответствуют классы в модели классов, на которую накладываются ограничения. При этом одному классу может соответствовать произвольное количество вершин. Ребрам графа соответствуют ассоциации между классами. При этом одно из ребер выделяется - оно соответствует ограничиваемой ассоциации. Используются два типа элементов диаграмм кооперации - объекты и связи, сообщения не используются. Для связей, соответствующих ограничиваемым ассоциациям вводится стереотип «Limited». При этом считается, что диаграмма кооперации является диаграммой ограничений в том и только том случае, если на ней присутствует хотя бы одна связь со стереотипом «Limited» (в предлагаемой версии нотации такая связь на диаграмме может быть только одна). У всех объектов на диаграмме ограничений должны быть указаны их классы, а у связей - ассоциации.
В качестве примера рассмотрим модель данных, состоящую из трех классов ~ подразделения, сотрудника и компьютера (рис.2). Предположим, что сотруднику может быть предоставлено право работать только компьютерах того подразделения, в котором он работает. Это ограничение невозможно выразить средствами модели данных, с помощью ограничений ссылочной целостности или как-либо еще. Спецификация этого ограничения с помощью предлагаемого языка показана на рис.3.
Рисмюк 2. Пример модели классов ,ия ограничения
Рисунок 3. Пример ограничении
Рассматривается несколько расширений предлагаемой модели:
• Модель с отрицаниями. Нотация диаграмм ограничений расширяется связями с новым стереотипом - «Absent», позволяющим описывать
отрицательные условия, т.е. элементы контекста, которые должны отсутствовать для выполнения ограничения.
• Модель с ограничениями на отдельные объекты. В ее рамках можно определять допустимость связи между двумя объектами не только в зависимости от наличия других связей, но и, например, в зависимости от значений атрибутов этих объектов (или связанных с ними). Эти дополнительные ограничения могут быть специфицированы с помощью ОСЬ или любым другим способом.
• Дизъюнктная модель. Все ограничения, описанные для системы, разбиваются на группы, в каждую из которых попадают ограничения, содержащие одну и ту же ограничиваемую ассоциацию. Ограничения в каждой группе считаются связпнными дизъюнкцией, в то время как между собой группы связаны конъюнкцией.
Для предлагаемого языка, включая все перечисленные выше расширения, описывается формальная семантика.
Четвертая глава посвящена моделированию пользовательского интерфейса И С. Рассматриваются существующие подходы к моделъно-ориентированной разработке пользовательского интерфейса (Model-Based User Interface Development, MBU1D) [5,8]. Как отдельное направление рассматриваются средства моделирования Web-интерфейсов, проводится сопоставление моделей, используемых в MBTJID и Web-моделировании. Выделяются два основных способа построения модели интерфейса - на основе модели задач и на основе модели предметной области.
Выделяются два уровня в оконном интерфейсе пользователя:
• Макроуровень, описывающий набор окон и связей между ними. Связи обозначают возможность вызова одного окна из другого.
• Микроуровень, описывающий набор элементов управления каждого окна и свойства этих элементов управления.
Соответственно, модель интерфейса можно разделить на макромодель и набор микромоделей (для каждого окна).
На макроуровне выделяются несколько типов наиболее часто встречающихся окон:
1. Список, отображающий множество однородных объектов.
2. Карточка, позволяющая просматривать и редактировать свойства одного объекта.
3. Форма-отношение, реализующая связь «многие ко многим». Формы этих типов могут быть связаны следующим образом:
1. Список с карточкой для просмотра и редактирования элемента списка. Позволяет пользова1елю просматривать/редактировать информацию об отдельном объекте, а также создавать новые объекты.
2. Карточка со списком или отношением для связанных объектов. Позволяет из карточки объекта переходить к просмо фу /редактированию ею связей с другими объектами. Связи этого вида можно инкапсулировать в составное окно - т.е. можно сгенерировать окно, состоящее из карточки и связанных с нею списков.
3. Отдельные элементы одного окна с другим окном - например, возможность вызова списка или карточки из фильтра или поля выбора.
Набор типов окон и связей между ними составляют макрометамодель интерфейса. Для каждого типа окон, кроме того, разработана его микрометамодель, определяющая возможности разработчика по управлению содержимым окна.
Наполнение модели интерфейса ведется, главным образом, с помощью мастеров (wizards), позволяющих создать или изменить модель отдельного окна, включая связи его с другими окнами. По окончании моделирования, мастер позволяет сразу же сгенерировать код окна, что позволяет разработчику конгролировать результаты свой работы не только на уровне модели, но и непосредственно посмотреть на смоделированное окно. Можно также сгенерировать код по всей модели сразу или по выбранному фрагменту - особенно актуально это бывает при изменении модели данных или шаблонов генерации.
Генерация кода по модели происходит на основе шаблонов, изменение которых позволяет изменить внешний вид всего приложения в соответствии с гребованиями конкретного заказчика.
Пятая глава посвящена поддержке итеративного процесса разработки при использовании генерации кода по моделям. Рассматриваются существующие методики поддержки итеративной разработки, для данного класса систем выделяются две основные задачи - учет «ручных» изменений кода, сгенерированного по моделям фазы проектирования (переход с фазы проектирования на фазу реализации), и миграции данных при эволюции схемы БД (переход с фазы реализации на фазу эксплуатации).
При рассмотрении первой задачи формулируется противоречие между необходимостью внесения «ручных» изменений в порожденную программу и необходимостью периодически производить перегенерацию. Рассматриваются следующие способы разрешения этого противоречия:
1. Разделение сгенерированного кода на компоненты, одни из которых не требуют модификации, а другие подвергаются модификации в процессе доработки и сопровождения программного кода. Перегенерация используется только для компонент первого вида, компоненты второго вида сопровождаются «вручную».
2. Ведение учета «ручных» изменений сгенерированного кода и их повторное внесение после каждой перегенерации.
3. Выделение модификаций кода в отдельные компоненты с автоматическим добавлением их в итоговую программу. Основные способы осуществления такого добавления - это использование препроцессора целевого языка, директив сборщика, специально написанных для этой цели программ (обычно, скриптов) или препроцессоров (например, фреймовых или аспектных), а при объектно-ориентированном подходе - использование полиморфизма (шаблон проектирования «Generation Gap»),
4. Расширение источников информации для кодогенерации -использование дополнительных моделей, расширение набора свойств элементов модели. При этом количество «ручных» изменений уменьшается за счет того, что специфичную семантику, которая вынуждает вносить эти изменения, удается внести в модель, используемую для генерации.
5. Выделение «ручных» изменений из кода системы путем автоматического анализа измененного текста программы и автоматическое внесение их при перегенерации.
Перечисленные выше способы анализируются с точки зрения применимости их к различным компонентам ИС.
Для решения задачи сохранения информации в БД предлагается не вносить изменения в существующую базу, а переносить информацию из старой базы в пустую базу с обновленной схемой, при необходимости, выполняя при этом перевод данных в новый формат. Рассматриваются проблемы такого подхода и пути их решения.
В шестой главе описывается реализация предложенных подходов на различных платформах - Windows (Visual Basic), J2SE и J2EE (Web).
Несмотря на наличие у каждой из этих платформ своих специфических особенностей, для каждой из них оказалось возможным создать набор инструментальных средств (генераторов кода, библиотек, вспомогательных утилит), реализующих предлагаемые в работе методики разработки информационных систем. При этом большая часть исходных текстов генераторов кода используется одновременно во всех версиях
технологии. Основное отличие разных версий заключается в архитектуре библиотек динамической поддержки и способе внесения «ручных» изменений в сгенерированный код.
Отдельно рассматриваются меры, направленные на оптимизацию времени исполнения сгенерированного приложения, поскольку технология REAL-IT позволяет создавать достаточно сложные по структуре экранные формы, содержащие большое количество элементов, инициализация которых требует выполнения запросов к базе данных. «Наивная» реализация, при которой все элементы инициализируются в момент загрузки формы, может вызвать длительную задержку при открытии окна. Использование техники «ленивой» инициализации позволяет разделить эту задержку на несколько коротких (приемлемых для пользователя) задержек, возникающих при взаимодействии пользователя с конкретными элементами формы. Кроме того, общая сумма этих задержек уменьшается за счет того, что обычно на сложных формах часть элементов редко используется и в большинстве случаев не требует полной инициализации. Дополнительная оптимизация достигается за счет учета зависимостей между полями и передачи дополнительной информации между формами (вместо повторного запроса к базе данных).
В седьмой главе сформулированы основные направления дальнейших исследований по теме работы К ним относятся как развитие описанных в работе подходов и методик, так и расширение предлагаемой технологии за счет включения в нее новых методик.
В качестве конкретных направлений исследований определены следующие:
• В области моделирования расширенных ограничений ссылочной целостности - использование рекурсивных связей между объектами при описании контекста ограничения.
• В области моделирования пользовательского интерфейса -добавление новых элементов в его макрометамодель, выявление и формализация новых типов форм и новых возможностей по построению составных форм.
• Моделирование прав доступа на объекты системы. Возможность описывать распределение прав между пользователями системы с помощью высокоуровневых средств моделирования, на основе функциональной модели и модели предметной области.
• Поддержка разработки линеек (product line) и семейств (product family). Реализация такой поддержки в REAL-IT требует создания средств для их моделирования, включая описание общих частей и
специализации для каждого из членов семейства, а также использование этих моделей в генераторах для порождения кода.
• Использование в дополнение к модели данных для реализации системы модели бизнес-процессов. Генерации кода на основе нескольких независимых моделей, каждая из которых описывает систему со своей точки зрения, является одной из наиболее актуальных, на сегодняшний день, нерешенных проблем в области использования модельно-ориентированных подходов к разработке ПО.
В заключении приводятся основные результаты работа. Список литературы
1. Максимчук Р., Нейбург Э. Проектирование баз данных с помощью UML: Пер. с англ. — М.. Вильяме, 2002. - 288 с.
2. Balzert Н. From ООА to GUIs — the JANUS System // Journal of Object-Oriented Programming — 1996. — Vol. 8. N 9. — P. 43-47.
3. Bottom" P. at al. A Visualization of OCL using Collaborations // Unified Modeling Language — Modeling Languages, Concepts, and Tools (UML'2001). — Springer, 2001. — P. 257-271.
4. Ceri S., Fraternali P., Bongio A. Web Modeling Language (WebML): a modeling language for designing Web sites // Computer Networks. — 2000, —Vol. 33. N 1. — P. 137-157.
5. da Silva P. User Interface Declarative Models and Development Environments: A Survey // Lect. Notes Comput. Sci. — 2000. — Vol. 1946,—P. 207-226.
6. Fowler M. What Is the Point of the UML // Lect. Notes Comput. Sci. — 2003. — Vol. 2863. — P. 325.
7. Kent S. Constraint Diagrams: Visualising Invariants in Objeci-Onented Models. // ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages & Applications (OOPSLA '97). — ACM Press, 1997. — P. 327-341.
8. Schlungbaum E. Model-Based User Interface Software Tools. Current state of declarative models. —Atlanta, 1996. — (Tech. Rep. / Graphics. Visualization & Usability Center / Georgia Institute of Technology).
Работы автора по теме диссертации
9. Иванов А.Н Графический язык описания офаничений на диаграммы классов UML // Программирование. — 2004. — N 4. — С. 204-208.
10. Иванов А.Н. Механизмы поддержки циклической разработки ИС в рамках модельно-ориентировапного подхода // Системное программирование. — СГ16, 2004. — С. 101-123.
11. Иванов А.Н. Технологическое решение REAL-IT: создание информационных систем на основе визуального моделирования // Системное программирование. — СПб, 2004. — С.89-100.
12. Иванов А.Н., Стригун С. А. Технологическое решение REAL-IT: Моделирование и генерация пользовательского интерфейса // Системное программирование. — СПб, 2004. — С. 124-147.
13. Сгригун С.А., Иванов А.Н., Соболев Д.И. Технология REAL для создания информационных систем и ее применение на примере системы «Картотека» // Математические модели и информационные технологии в менеджменте. Выпуск 2. —СПб, 2004. —С. 120-139.
14. Худякова Ю.М., Иванов А.Н., Васильева Н.С. Информационная система «Студент». Механизм распределения прав доступа. // Телематика-2003: Тез. докл. Всерос. науч.-методич. конф. — СПб, 2003.
15. Стригун С.А., Иванов А.Н. Опыт создания автоматизированной системы управления учебным процессом ВУЗа. // Телематика-2002: Тез. докл. Всерос. науч.-методич. конф. — СПб, 2002.
16. Иванов А.Н. Высокоуровневый механизм описания прав доступа на разрабатываемую программную систему // Объектно-ориентированное визуальное моделирование. — СПб, 1999. — С. 7885.
17. Терехов А.Н., Романовский К. Ю., Кознов Дм.В., Долгов П.С., Иванов А.Н. Real: Методология и CASE-средство для разработки систем реального времени и информационных систем // Программирование — 1999, —N 5, —С. 44-51
18. Терехов А.Н., Романовский К.Ю., Кознов Дм.В., Долгов П.С., Иванов А.Н Объектно-ориентированная методология разработки информационных систем и систем реального времени // Объектно-ориентированное визуальное моделирование. — СПб, 1999. — С.4-20.
Подписано к печати 17. 08. 2005. Формат бумаги 60x84 1/16. Бумага офсетная. Печать ризографическая. Объем 1 усл. п.л. Тираж 100 экз. Заказ 3505. Отпечатано в отделе оперативной полиграфии НИИХ СПбГУ с оригинал-макета заказчика. 198504, Санкт-Петербург, Старый Петергоф, Университетский пр., 26.
IP 1 5 4 4 1
РНБ Русский фонд
2006-4 11586
Оглавление автор диссертации — кандидата физико-математических наук Иванов, Александр Николаевич
Введение.
Глава 1. Определение и виды информационных систем.
1.1 Виды ИС.
1.2 Функциональность информационных систем, ориентированных на данные.
Глава 2. Технология REAL-IT.
2.1 Моделирование схемы данных.
2.2 Описание ограничений целостности.
2.3 Описание экземпляров.
2.4 Создание представлений.
2.4.1 Расширение UML для моделирования представлений.
2.5 Создание экранов.
2.6 Генерация.
2.6.1 База данных.
2.6.2 Программный интерфейс базы данных.
2.6.3 Экранные формы.
Введение 2005 год, диссертация по информатике, вычислительной технике и управлению, Иванов, Александр Николаевич
Несмотря на то, что первые работы по использованию диаграмм для спецификации программ появились еще в начале 60х годов прошлого века, вопрос о роли и месте визуальных спецификаций и их соотнесении с кодом до сих пор остается открытым и вызывает полемику.
Мартин Фаулер (Martin Fowler) и, независимо от него, Стив Меллор (Steve Mellor) определяют следующие способы использования языка визуального моделирования UML [90], которые, однако, можно отнести и к визуальному моделированию в целом [56]:
1. Набросок. Использование диаграмм в процессе обсуждения или изложения проблем и концепций. Такие наброски носят неформальный характер, простота и выразительность для них важнее, чем полнота описания. При этом следование определенным нотациям может быть полезно для повышения скорости восприятия, если предполагается, что все, для кого предназначена диаграмма, хорошо знакомы с нотацией. Но следование правилам определенного языка не является обязательным требованием и часто нарушается. Чаще всего такие наброски делаются от руки на бумаге или на доске непосредственно во время обсуждения, если же требуется электронный вариант, то обычно используются средства рисования произвольных схем, например, Microsoft Visio.
2. Чертеж. При этом подходе набор диаграмм представляет собой полное (с определенной точки зрения) формальное описание системы, на основе которого создается программный код. Хотя для получения первой версии кода часто используются генераторы, диаграммное описание является проектом, а не собственно программой, т.е. не включает в себя все детали функционирования системы.
3. Язык программирования. В этом случае семантика программы полностью выражается средствами языка моделирования, и CASE-пакет представляет собой законченную среду разработки. Обычно, однако, подобный язык содержит не только диаграммную составляющую, но текстовую, которая не может быть выражена средствами диаграмм например, система типов или элементарные операции над данными). Примером такого языка может служить SDL [1,97], ведущиеся в настоящее время работы консорциума OMG по подготовке стандарта UML 2.0 во многом направлены на возможность использования UML в этом качестве.
Подход «Чертеж» подразумевает использование диаграмм по аналогии с чертежами в промышленности — т.е. в качестве формальных и полных спецификаций продукта. Долгое время именно этот подход считался основным, и на него ориентировались разработчики CASE-пакетов 70х-90х годов XX века, таких как IEF1, ADW2 и т.д. Эти пакеты предназначались для разработки произвольных информационных систем, в этом смысле их можно назвать универсальными. Их создатели пытались представить процесс разработки системы как последовательное построение взаимосвязанных моделей, на основе которых осуществляется генерация программного кода. Характерными чертами данного подхода являются необходимость детального моделирования системы с разных точек зрения, внутренняя согласованность и взаимосвязь моделей, а также однозначно определенная семантика каждого элемента модели. Практика показала, что такой подход требует очень больших накладных расходов, а отсутствие поддержки итеративного процесса (что характерно для большинства его реализаций) разработки делает его плохо применимым в большинстве реальных проектов. Несмотря на то неоднократные попытки воплотить этот подход в жизнь не увенчались успехом, он до сих пор представляется идеалом для многих исследователей.
Подход «Набросок» в настоящее время пропагандируется сторонниками «гибких методологий» как альтернатива подходу «Чертеж». Этот подход ограничивает использование диаграмм исключительно коммуникативными функциями, их место оказывается среди пояснительных документов, описывающих мысли проектировщиков системы по поводу отдельных аспектов
1 Information Engineering Facility, продукт компании Texas Instruments
2 Application Development Workbench, продукт компании KnowledgeWare. разрабатываемой системы, но не саму эту систему. Естественно, никакой генерации кода при этом не предполагается.
В рамках подхода «Язык программирования» создано несколько специализированных пакетов [99], интегрирующих в себе возможности CASE-средств и среды разработки. Каждый такой пакет предназначен для достаточно узкого класса систем, главным образом, в сфере телекоммуникаций и управления оборудованием. В области создания информационных систем такой подход не нашел широкого применения.
Предлагаемый в данной работе подход относится к направлению «Чертеж» и предусматривает генерацию кода по диаграммам, однако, в отличие от классических подходов [77], здесь не предполагается полное и всеобъемлющее описание системы с помощью диаграмм, а использование последних для описания отдельных подсистем, хорошо поддающихся такому декларативному описанию. Особое внимание при этом уделено интеграции сгенерированного кода и кода, написанного вручную, а также поддержке итеративного процесса разработки.
При выборе подсистем, описываемых с помощью диаграмм, мы исходили из следующих предпосылок:
1. То, какой из способов представления информации - текстовый или графический, является наиболее удобным, зависит от структуры этой информации.
2. При описании статической структуры системы диаграммы позволяют наглядно представить взаимосвязи между ее элементами.
3. Для описания алгоритмов текстовые языки обычно оказываются более удобными, чем графические.
Исходя из представленных принципов (в особенности, последнего), невозможно создать универсальное решение, пригодное для разработки любых видов ПО, в котором основная часть кода генерировалась бы по диаграммам.
Выход здесь мы видим в отказе от универсальности и ориентации на отдельные классы программных систем (или отдельных подсистем), в которых статическая структура информации превалирует над алгоритмами. В качестве такого класса в данной работе рассматриваются информационные системы, ориентированные на данные. Отметим основные свойства таких систем:
1. Основными компонентами системы являются база данных и интерфейс пользователя.
2. Наиболее важным архитектурным элементом является модель данных и ее реализация - схема БД.
При разработке баз данных общепринятым подходом является использование визуального моделирования - диаграмм сущность-связь [25] и их разновидностей - ШЕПх [28], диаграмм классов и т.д. Однако, не вся существенная информация о данных может быть выражена на этих диаграммах. Различного рода зависимости между данными и вытекающие из этих зависимостей ограничения приходится описывать в текстовом виде - в лучшем случае, они указываются в модели в виде формализованных или неформальных комментариев, чаще же всего появляются уже непосредственно в коде. Таким образом, актуальным является вопрос наглядного моделирования функциональных зависимостей, невыразимых средствами модели сущность-связь.
Вторая существенная компонента рассматриваемого класса систем - интерфейс пользователя, во многом определяется моделью данных, что создает предпосылки для создания модели интерфейса на основе модели данных и последующей генерации кода по этой модели. Сциллой и Харибдой являются, с одной стороны, слишком сложная и богатая модель, в пределе позволяющая описывать произвольный интерфейс - при этом затраты на разработку модели окажутся сопоставимыми с непосредственным созданием интерфейса в WYDIWYS3 среде разработки (но без наглядности последней), а с другой -чрезмерное ее упрощение (пределом чего является генерация интерфейса непосредственно по схеме БД), приводящее к необходимости существенной доводки полученного результата (а то и полного его переписывания) для повышения его эргономичности.
3 What You Do Is What You See
Решение этих задач - моделирования ограничений и интерфейса пользователя, а также поддержка итеративной разработки при использовании генераторов кода, представляются нам ключевыми моментами в создании эффективной технологии разработки рассматриваемого класса систем, основанной на генерации кода по диаграммам.
В данной работе представлена оригинальная технология разработки этого класса ИС, основанная на использовании универсального объектно-ориентированного CASE-пакета REAL [22] и включающая в себя набор генераторов программного кода и дисциплину их использования. Основу предлагаемого подхода составляет набор методик, каждая из которых накрывает тот или иной вид деятельности или предназначена для решения определенного класса проблем, возникающих при разработке ИС. Некоторые из методик заимствованы из других подходов (например, использование модели «сущность-связь»), другие являются оригинальными разработками (их описание и составляет основную часть работы). Все эти методики, взятые вместе, составляют единый процесс разработки, для поддержки которого разработаны соответствующие инструментальные средства. Весь набор предлагаемых методик и инструментальных средств мы называем технологией REAL-IT.
Традиционно в процессе создания программных систем выделяют фазы анализа, проектирования и реализации [19]. Использование визуального моделирования при анализе требований и проектировании программных систем является в настоящее время широко распространенной практикой, существует большое количество методологий создания визуальных спецификаций [2,31], в частности, методология REAL [23]. В фокусе внимания технологии REAL-IT находятся этапы детального проектирования и реализации ИС, при этом использование объектно-ориентированного CASE-пакета как среды моделирования и диаграмм UML в качестве основы для генерации исполняемого кода позволяет уменьшить разрыв между этапами проектирования и реализации, поскольку именно UML является, в настоящее время, наиболее часто используемым языком для описания результатов проектирования.
В настоящее время реализовано несколько версий REAL-IT для различных технологических платформ:
• REAL-IT/VB - для создания приложений на языке Visual Basic, работающих под управлением ОС семейства Microsoft Windows, как на одном компьютере, так и в архитектуре клиент-сервер. Это вариант предназначен, главным образом, для создания приложений для автоматизации офисной деятельности.
• REAL-IT/Java - для создания переносимых приложений в трехзвенной архитектуре на платформе J2SE.
• REAL-ITAVEB — для создания интернет/интранет приложений. Эта версия технологии еще только разрабатывается.
Предлагаемая технология была успешно применена при реализации целого ряда проектов для отечественных и зарубежных заказчиков, и продолжает использоваться как в новых проектах, так и при сопровождении ранее выпущенных систем.
Основные инструментальные средства REAL-IT создавали:
• А.Иванов - основные идеи и общее руководство проектом, генераторы кода, библиотеки поддержки REAL-IT/VB и REAL-IT/Java;
• С.Стригун - библиотеки поддержки REAL-IT/VB;
• Н.Васильева - библиотека UniWord (REAL-IT/VB), система разграничения прав доступа;
• Т.Хаиров - библиотека UniMigrator (REAL-IT/VB);
• Ю.Худякова - система разграничения прав доступа;
• Т.Сорокина - мастер создания приложения (REAL-IT/VB);
• А.Болотова - библиотеки поддержки и генераторы кода REAL-IT/Java для форм типов список и отношение;
• Е.Чулкова - библиотеки поддержки и генераторы кода REAL-IT/Java для форм типа карточка, библиотеки поддержки для REAL-IT/WEB;
• Т. Васильева - библиотеки поддержки и генераторы кода REAL-IT/Java для форм типа отношение.
Автор выражает признательность всем участникам этого проекта, а также благодарит Д.Кознова и И.Соболева за обсуждение и конструктивную критику диссертационной работы.
Заключение диссертация на тему "Автоматизированная генерация информационных систем, ориентированных на данные"
Заключение
Основными результатами данной диссертационной работы являются:
• Модель пользовательского интерфейса ИС, ориентированных на работу с данными, методика ее построения и алгоритм генерации кода по предложенной модели.
• Расширение модели классов UML для проектирования объектно-реляционных баз данных.
• Диаграммный язык для описания ограничений на модель классов.
• Методика поддержки итеративной разработки ПО при использовании генераторов кода ИС по визуальным моделям.
• Промышленная реализация выработанных подходов.
• Апробация представленных решений в ряде промышленных проектов.
Библиография Иванов, Александр Николаевич, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
1. Бардзинь Я.М., Калкиныи А.А., Стродс Ю.Ф., Сыцко В.А. Язык спецификаций SDL/PLUS и его применения. Рига, 1988 — 313 с.
2. Буч Г., Рамбо Д., Якобсон А. Унифицированный процесс разработки программного обеспечения: Пер. с англ. — СПб.: Питер, 2002. — 496 с.
3. Васильева Н.С. Механизм распределения прав доступа в информационных системах: Тез. докл. / Седьмая Санкт-Петербургская ассамблея молодых ученых и специалистов — СПб, 2002. — С. 17.
4. Влиссидес Д. Применение шаблонов проектирования. Дополнительные штрихи: Пер. с англ. — М.: Вильяме, 2002. — 144 с.
5. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Д. Приемы объектно-ориентированного проектирования. Паттерны проектирования: Пер. с англ. — СПб: Питер, 2001. — 368 с.
6. Горин С.В., Тандоев А.Ю. Применение CASE-средства ERwin 2.0 для информационного моделирования в системах обработки данных // СУБД.1995.—N3.
7. Горшкова Е.А., Новиков Б.А., Белов Д.Д., Гуров B.C., Спиридонов С.В. Моделирование контроллера Web-приложений с использованием UML // Программирование. — 2005. — N 1. — С. 44-51.
8. Иванов А.Н. Высокоуровневый механизм описания прав доступа на разрабатываемую программную систему // Объектно-ориентированное визуальное моделирование / Под ред. Проф. Терехова А.Н. СПб, 1999.1. С. 78-85.
9. Иванов А.Н. Графический язык описания ограничений на диаграммы классов UML // Программирование. — 2004. — N 4. — С. 204-208.
10. Иванов А.Н. Механизмы поддержки циклической разработки ИС в рамках модельно-ориентированного подхода // Системное программирование / Под ред. Проф. Терехова А.Н. и Булычева Д.Ю. -СПб, 2004. —С.101-123.
11. Иванов А.Н. Технологическое решение REAL-ГГ: создание информационных систем на основе визуального моделирования // Системное программирование / Под ред. Проф. Терехова А.Н. и Булычева Д.Ю. — СПб, 2004. — С.89-100.
12. Иванов А.Н., Стригун С.А. Технологическое решение REAL-IT: Моделирование и генерация пользовательского интерфейса // Системное программирование / Под ред. Проф. Терехова А.Н. и Булычева Д.Ю. — СПб, 2004. —С.124-147.
13. Кознов Д.В. Визуальное моделирование компонентного программного обеспечения: Дис. канд. физ.-мат. Наук: 05.13.11. — СПб, 2000 — 82 с.
14. Кондратьев A.M. CASE-средства и объектные базы данных // Объектно-ориентированное визуальное моделирование / Под ред. проф. А.Н.Терехова — СПб, 1999. — С. 57-77.
15. Круглински Д., Уингоу С., Шеферд Д. Программирование на Visual С ++ 6.0. Для профессионалов: Пер. с англ. — СПб: Питер, 2000. — 864 с.
16. Куке С.В. Аксиоматизация эволюции схемы XML-баз данных // Программирование — 2003. —N 3. — С. 1-9.
17. Максимчук Р., Нейбург Э. Проектирование баз данных с помощью UML: Пер. с англ. — М.: Вильяме, 2002. — 288 с.
18. Романовский К.Ю., Кузнецов С.В., Кознов Д.В. Объектно-ориентированный подход и диаграммы классов UML // Объектно-ориентированное визуальное моделирование / Под ред. проф. А.Н.Терехова — СПб, 1999. — С. 21-56.
19. Соммервилл И. Инженерия программного обеспечения: Пер. с англ. — М.: Вильяме, 2002. — 624 с.
20. Сухарев М. Turbo Pascal 7.0. Теория и практика программирования. — М.: Наука и Техника, 2003. — 576 с.
21. Терехов А.Н., Романовский К. Ю., Кознов Дм.В., Долгов П.С., Иванов А.Н. Real: Методология и CASE-средство для разработки систем реального времени и информационных систем // Программирование — 1999. —N5. —С. 44-51.
22. Харитонова И., Михеева В. Microsoft Access 2000. Разработка приложений. — СПб: BHV, 2000. — 832 с.
23. Чен П. Модель "сущность-связь" шаг к единому представлению данных //СУБД- 1995 —N5.
24. Янкелевич А.А., Бержезовский А.В. Применение графовых моделей для спецификации пользовательского интерфейса программных систем // Вестник молодых ученых. — 2001. — N 7. — С.104— 112.
25. ABmann U. Automatic Roundtrip Engineering // Electronic Notes in Theoretical Computer Science 2003 — Vol.82 - N 5.
26. Adelsberger H., Korner F. Data Modeling with IDEF1X: // Lect. Notes Comput. Sci. —1995. — Vol. 973 — P.355-391.
27. Ahmed-Nacer M., Estublier J. Schema Evolution in Software Engineering Databases: a New Approach in ADELE Environment // Computers and Artifcial Intelligence — 2000 — Vol. 19.
28. Andany J., Leonard M., Palisser C. Management of schema evolution in databases // In Proc. of the 17th International Conference on Very Large — Databases, Barcelona, Spain — 1991. — P. 161-170.
29. Avison D.E., Fitzgerald G. Information Systems Development: Methodologies, Techniques and Tools. 2nd Edition. — McGraw-Hill, 2002. — 505 p.
30. Baeg J., Fukazawa Y. A Dialog-Oriented User Interface Generation Mechanism // Proc. of the 3rd Asia-Pacific Software Engineering Conference (APSEC'96). — Seoul, South Korea — 1996. — P. 310-317.
31. Balzert H. From 00A to GUIs — the JANUS System // Journal of Object-Oriented Programming — 1996. — Vol. 8. N 9. — P. 43-47.
32. Barclay P. J. e.a. Teallach — a flexible user-interface development environment for object database applications // Journal of Visual Languages & Computing — 2003. — Vol. 14.11. — P. 47-77.
33. Bassett P. Framing Software Reuse lessons from the real world. — Yourdon Press: Prentice Hall, 1997. — 384 p.
34. Batory D., Cardone R., Smaragdakis Y. Object-oriented frameworks and product lines // In Proc. of the First Software Product Line Conference (SPLC) — Denver. — 2000. — P. 227-248.
35. Bernstein P., Halevy A., Pottinger R. A Vision for Management of Complex Models — 2000 — SIGMOD Record 29(4) — P. 54-63.
36. Blechar M. Architected RAD Tools Are Delivering Major Benefits — Gartner Research Notes, Gartner Inistitute — 2003.
37. Bojic D., Velasevic D. URCA Approach to Scenario-based Round-trip Engineering // In Proc. Of OOPSLA 2000 Workshop on scenario-based round-trip engineering, Minneapolis, October 2000.
38. Bottoni P. at al. A Visualization of OCL using Collaborations // Unified Modeling Language — Modeling Languages, Concepts, and Tools (UML'2001). — Springer, 2001. — P. 257-271.
39. Bourdeau H., Cheng B. A Formal Semantics for Object Model Diagrams // IEEE Transactions on Software Engineering. 1995. —Vol.21 N 10. —1. P. 799-821.
40. Browne T.P. e.a. Using declarative descriptions to model user interfaces with MASTERMIND // Formal Methods In Human-Computer Interaction — Springer-Verlag. — 1997. — P. 93-120.
41. Cavaness С. Programming Jakarta Struts, 2nd Edition — O'Reilly, 2004 — 550p.
42. Ceri. S., Fraternali. P., Bongio A. Web Modeling Language (WebML): a modeling language for designing Web sites // Computer Networks. — 2000.1. Vol. 33. N1. —P. 137-157.
43. Ceri S. at al. Architectural Issues and Solutions in the Development of Data-Intensive Web Applications // In Proc. of the First Biennial Conference on Innovative Data Systems Research (CIDR 2003) — Asilomar, CA, USA.
44. Claypool K., Rundensteiner E., Heineman G. ROVER: A Framework for the Evolution of Relationships // Data and Knowledge Engineering. — 2001. — Vol. 39. N1.—P. 27-50.
45. Conallen J.: Modeling Web Application Architecture with UML // Comm. of the ACM. —1999. — Vol. 42. N 10. — P. 63-70.
46. Costagliola G., Ferrucci F., Francese R. Web Engineering: Models and Methodologies for the Design of Hypermedia Applications. // Handbook of Software Engineering and Knowledge Engineering — 2002 — Vol.2 — P. 181-200.
47. Database Language SQL: ISO/IEC 9075:1992. — 1992. — 693 p.
48. Demuth В., Hussman H. Using UML/OCL Constraints for Relational Database Design // The Unified Modeling Language — Beyond the Standard (UML'99). — Springer, 1999. — P. 598-613.
49. Designing Data-Intensive Web Applications / Ceri S., Fraternali. P., Bongio A. at al. — Morgan Kaufmann, 2002 — 562 p.
50. Domnnguez E., Lloret J., Zapata M. An Architecture for Managing Database Evolution // Lect. Notes Comput. Sci. — 2003. — Vol. 2784. — P. 63-74
51. Fowler M.: What Is the Point of the UML // Lect. Notes Comput. Sci. — 2003. — Vol. 2863. — P. 325.
52. Fraternali P. Maurino A. Tools and Approaches for Developing Data-Intensive Web Applications: A Survey // Lect. Notes Comput. Sci. — 2002. —1. Vol. 2455.—P. 99-108
53. FRISCO Report— IFIP, 1998. — 224 p.
54. Garzotto F., Paolini P. HDM — A Model-Based Approach to Hypertext Application Design // ACM Transaction on Information Systems. — 1993. — Vol. 11. No 1. —P. 1-26.
55. Gorshkova E., Novikov В.: Exploiting UML extensibility in the design of web information system // Proc. of the Baltic Conference, BalticDB & IS 2002, Tallin. — 2002. — Vol. 2. — P. 49-64.
56. Griggiths T. at al. Teallach: a model-based user interface development environment for object databases. // Interacting with Computers. — 2001. — N14. —P. 31-68.
57. Hennicker R., Koch N.: A UML-based methodology for hypermedia design. // Lect. Notes Comput. Sci. — 2000. — Vol. 1939. — P. 410-424.
58. Henriksson A., Larsson H. A Definition of Round-trip Engineering — Linkoping, 2003 — (Tech. Rep. / Department of Computer Science / Linkoping University).
59. Howse J. at al. Spider Diagrams: A Diagrammatic Reasoning System // Journal of Visual Languages and Computing. 2001. — Vol.12 N 3. — P. 299324.
60. IBM Rational Rapid Developer Automated Construction — IBM Corporation, 2003.
61. IBM Rational Rapid Developer Technical Overview — IBM Corporation, 2003.
62. Isakowitz Т., Sthor E. A., Balasubramanian P. RMM: a methodology for structured hypermedia design // Comm. of the ACM. — 1995. — Vol. 38. No 8. —P. 34-44.
63. Iverson W. Hibernate : A J2EE(TM) Developer's Guide — Addison-Wesley Professional, 2004. — 384 p.
64. Janssen C., Weisbecker A., Ziegler J. Generating User Interfaces from Data Models and Dialogue Net Specifications // Proc. of the InterCHI'93, New York. — 1993. — P. 418-423.
65. Kent S. Constraint Diagrams: Visualising Invariants in Object-Oriented Models. // ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages & Applications (OOPSLA '97). — ACM Press, 1997. — P. 327-341.
66. Kiczales G. at al.: An Overview of AspectJ // Lect. Notes Comput. Sci. — 2001. — Vol. 2072 — P. 327-355.
67. Kung-Kiu L., Omaghi M., Wills A. Frameworks in Catalysis: Pictorial Notation and Formal Semantics. // In Proc. of the First IEEE International Conference on Formal Engineering Methods (ICFEM'97). — Springer. 1997.1. P. 213.
68. Lerner В., Habermann A. Beyond schema evolution to database reorganisation. // SIGPLAN Notices — Vol. 25 N 10 P. 67-76.
69. Lomet D. Letter from the Editor-in-Chief // IEEE Data Engineering. — 1994.1. Vol. 7 N2. —P. 1.
70. Markopoulos P., Pycock J., Wilson S., Johnson P. Adept A task based design environment // In Proc. of the 25th Hawaii International Conference on System Sciences. — IEEE Computer Society Press, 1992. — P. 587-596.
71. Marca D., McGowan C. SADT Structured Analysis and Design Technique. McGraw-Hill, 1988. — 392 p.
72. Melnik S., Rahm E., Bernstein P. Rondo: A Programming Platform for Generic Model Management. // In Proc. of the ACM SIGMOD International Conference on Management of Data, San Diego, California, USA 2003. — P. 193-204.
73. Mens Т., D'Hondt T. Automating Support for Software Evolution in UML // Automated Software Engineering — 2000. — Vol. 7. N 1. — P. 39-59.
74. Myers В., Hudson S., Pausch R. Past, Present and Future of User Interface Software Tools // ACM Transactions on Computer-Human Interaction (TOCHI) — 2000. — Vol. 7. N 1. — P. 3-28.
75. Neches R. at al. Knowledgeable Development Environments Using Shared Design Models. // In Proc. of the International Workshop on Intelligent User Interfaces, Orlando, Florida, USA, 1993 — P. 63-70.
76. Northrop L. SEI's Software Product Line Tenets // IEEE Software. — 2000. — Vol.19 N4. —P. 32-41.
77. Peters R.J., Ozsu M.T. An Axiomatic Model of Dynamic Schema Evolution in Objectbase Systems // ACM Transactions on Database Systems — 1997. — Vol. 22 N 1 —P.75-114.
78. Proper H. Data Schema Design as a Schema Evolution Process // Data & Knowledge Engineering — 1997. — Vol. 22 N 2 — P. 159-189.
79. Puerta A. The Mecano Project: Comprehensive and Integrated Support for Model-Based Interface Development // In Proc. of the Conference on Computer-Aided Design of User Interfaces. — 1996. — P. 19-36.
80. Rational Rose 98. Roundtrip Engineering with С++. — Rational Software Corp., 1998. —455 p.
81. Rational Rose 98. Using Rational Rose. — Rational Software Corp., 1998. — 267 p.
82. Roddick J. A Survey of Schema Versioning Issues for Database Systems // Information and Software Technology. — 1995. —Vol.37 N 7 — P.383-393.
83. Roddick, J., Craske, N., Richards, T. A Taxonomy for Schema Versioning Based on the Relational and Entity Relationship Models // Lect. Notes Comput. Sci. — 1993. — Vol. 823 — P.143-154.
84. Rumbaugh J., Jacobson I., Booch G. The Unified Modeling Language Reference Manual. — Addison-Wesley, 1999. — 576 p.
85. Schattkowsky Т., Lohmann M.: Rapid Development of Modular Dynamic Web Sites Using UML // Lect. Notes Comput. Sci. — 2002. — Vol. 2460— P. 336-350.
86. Schlungbaum E. Model-Based User Interface Software Tools. Current state of declarative models. — Atlanta, 1996. — (Tech. Rep. / Graphics, Visualization
87. Usability Center / Georgia Institute of Technology).
88. Sendall S., Ktister J. Taming Model Round-Trip Engineering // In Proc. of Workshop on Best Practices for Model-Driven Software Development (part of OOPSLA'04), Vancouver, Canada, 2004.
89. Shirogane J., Fukazawa Y. Method of User-Customizable GUI Generation and Its Evaluation // Proc. 3rd Asia-Pacific Software Engineering Conference (APSEC'98), Taipei, Taiwan. — 1998 — P. 377.
90. Shneiderman В., Thomas G. An architecture for automatic relational database system conversion // ACM Transactions on Database Systems — 1982 — Vol.7 N2 —P. 235-257.
91. Siegel J. CORBA Fundamentals and Programming. — N.-Y.:Wiley, 1996. — 693 p.
92. Specification and Description Language (SDL): ITU-T Recommendation Z. 100. — 1993. —204 p.
93. Stirewalt K., Rugaber S. The model-composition problem in user-interface generation. // Automated Software Engineering — 2000 — Vol. 7 N 2 — P. 101-124.
94. Telelogic Tau 4.5 User's Manual. — Telelogic AB, 2003. — 3938 p. 100. Together Evaluation Guide. — TogetherSoft LLC, 1999. — 46 p.
95. Vlissides J., Tang S. A Unidraw-based User Interface Builder. // In Proc. of the ACM SIGGRAPH Fourth Annual Symposium on User Interface Software and Technology — Hilton Head, SC, 1991. — P. 201-210.
96. Widom J. Letter from the Special Issue // IEEE Data Engineering. — 1994. — Vol. 7 N2, —P. 2.
97. Warmer J, Kleppe A. The Object Constraint Language: Precise Modeling with UML. — Addison-Wesley, 1998. — 144 p.
98. WebRatio Site Development Studio User Guide. — Web Models S.r.l., 2003. — 253 p.
-
Похожие работы
- Автоматизация проектирования универсально-сборных приспособлений
- Методы, алгоритмы и программное обеспечение комбинаторной генерации
- Повышение эффективности автоматизированных обучающих систем за счет расширения функциональных возможностей и проблемной ориентации
- Разработка математического и программного обеспечения генерации тестовых последовательностей и верификации сложных цифровых схем
- Автоматизация проектирования специализированных устройств генерации полных комбинаторных перестановок элементов символьной строки
-
- Системный анализ, управление и обработка информации (по отраслям)
- Теория систем, теория автоматического регулирования и управления, системный анализ
- Элементы и устройства вычислительной техники и систем управления
- Автоматизация и управление технологическими процессами и производствами (по отраслям)
- Автоматизация технологических процессов и производств (в том числе по отраслям)
- Управление в биологических и медицинских системах (включая применения вычислительной техники)
- Управление в социальных и экономических системах
- Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
- Системы автоматизации проектирования (по отраслям)
- Телекоммуникационные системы и компьютерные сети
- Системы обработки информации и управления
- Вычислительные машины и системы
- Применение вычислительной техники, математического моделирования и математических методов в научных исследованиях (по отраслям наук)
- Теоретические основы информатики
- Математическое моделирование, численные методы и комплексы программ
- Методы и системы защиты информации, информационная безопасность