Визуально-декларативный язык для проектирования автоматизированных информационных систем
Рассмотрение языка N-Visual Language, предназначенного для построения проектной диаграммы информационной системы. Причины разработки языка. Классы, категории как основные элементы проектной диаграммы, типы отношений и установления наследования между ними.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 28.05.2017 |
Размер файла | 428,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Визуально-декларативный язык для проектирования автоматизированных информационных систем
Ольховик О.В.,
Белых А.В.
В статье представлен язык, N-Visual Language (NVL), предназначенный для проектирования программного обеспечения информационных систем: структуры базы данных и кода, реализующего бизнес-логику.
Причины, побудившие нас к разработке NVL - это, с одной стороны, недостаточная выразительность для кодогенерации IDEF-нотаций, с другой - громоздкость стандарта UML 2.0, на что обращено внимание, например, в работе [1].
Теоретические основы NVL описаны в статье [2]. Декларативная составляющая языка представлена в работе [3].
NVL предназначен для построения проектной диаграммы информационной системы, из которой автоматически генерируется структура базы данных и программный код для вычисления расчетных данных. Автоматическая генерация в таком случае позволяет:
- не разрабатывать проектные артефакты, описывающие поведение и алгоритмы для программных объектов, реализующих бизнес-логику;
- не писать вручную программный код для реализации бизнес-логики;
- автоматически поддерживать полное соответствие между проектными артефактами и программным кодом, как в процессе разработки так и во время эксплуатации системы.
NVL разработан так, чтобы для понимания проектной диаграммы и пользователи, и разработчики прикладывали минимальные усилия, и, тем самым, могли проще находить общий язык. Для этого
- проект программного обеспечения информационной системы выполняется только одной проектной диаграммой;
- проектная диаграмма на уровне представления может разбиваться на любое количество субдиаграмм (подобно ER-диаграмме);
- в диаграмме допускаются идентификаторы, образованные с помощью национальных алфавитов, и их не нужно транслировать в латиницу, поскольку идентификация во внутреннем представлении независима;
- NVL прост и состоит всего из пяти визуальных элементов;
- визуальные элементы NVL аналогичны элементам из стандартов UML 2.0 [4] и IDEF1X [5], и поэтому интуитивно понятны не только разработчикам ИС, но и опытным пользователям.
При структурном подходе к проектированию ИС проектная диаграмма на NVL заменяет ER-диаграммы, диаграммы потоков данных (DFD) и диаграммы деятельности (IDEF3), описывающие программный код. Проектная диаграмма может связываться с моделью бизнес-процессов через спецификации входов и выходов на диаграммах IDEF0.
При объектно-ориентированном подходе к созданию программного обеспечения ИС проектная диаграмма может заменить диаграммы реализации UML для программного кода: классов (Class Diagram), кооперации (Collaboration Diagram) последовательности (Sequence Diagram), активности (Activity Diagram) и состояний (Statechart Diagram).
Прежде чем перейти к описанию языка, рассмотрим пример. Предметная область - организация выставок (упрощенный фрагмент). Компания, на арендуемой территории, проводит выставки, на которые в качестве экспонентов приглашаются юридические лица. Выставка характеризуется названием и сроками проведения. Выставка с одним названием может проводиться с периодичностью раз или два в год. За проведение выставки отвечает менеджер - сотрудник компании.
Экспонент подает заявку-договор на участие в выставке, где, помимо собственных реквизитов, указывает размер, расположение и тип арендуемого стенда (только одного). В зависимости от этих параметров рассчитывается сумма договора. Кроме того, в сумму договора входят обязательный взнос и аккредитация представителей экспонента. Для иностранных участников наценка составляет 25%. Для участников, оформивших заявку за девяносто дней до начала выставки, скидка - 10%. Помимо суммы договора, необходимо рассчитывать доходность выставок и количество заявок, с которыми работает каждый менеджер. Проектная диаграмма для данного примера представлена на рис. 1.
Рисунок 1 - Проектная диаграмма «Организация выставок»
Основной элемент проектной диаграммы - класс. Семантика класса описана в [2]. В NVL класс представлен прямоугольником, состоящим из четырех горизонтальных секций (рис. 2). В верхней секции записывается уникальное имя класса и, через двоеточие, его тип: Concept, Abstract, Entity или State. Тип класса характеризует природу его экземпляров (абстракции, сущности, состояния). У класса типа Concept есть только один неявный экземпляр.
а) б)
Рисунок 2 - Классы в NVL
а) спецификация класса; б) пример класса
Во второй сверху секции описываются исходные атрибуты. Задаются их имена и типы данных (домены) или экстенсионалы для ссылок. В третьей секции определяются формулы расчетных атрибутов. По исходным атрибутам автоматически генерируется схема базы данных, по расчетным - программный код, реализующий бизнес-логику. Четвертая секция предназначена для спецификации методов. Описание атрибутов и методов выполняется согласно синтаксису декларативного языка NDL [3]. Имена атрибутов и методов уникальны внутри класса, а также внутри ветви наследования, за исключением случая явного перекрытия.
Категория - множество экземпляров класса, соответствующих некоторому логическому условию. В отличие от классов, экземпляры которых задает пользователь, множество экземпляров категории формируется автоматически из объектов, для которых условие категории в текущий момент времени принимает истинное значение. Категория изображается четырехугольником с закругленными углами, состоящим из четырех секций (рис. 3). В первой секции записывается имя категории (может отсутствовать). Во второй секции декларируется логическое условие, определяющее категорию. Третья и четвертая секции категории соответствуют двум последним секциям класса (расчетные атрибуты и методы).
а) б)
Рисунок 3 - Категории в NVL
а) спецификация категории; б) примеры категории
Между классами и категориями могут устанавливаться отношения трех типов: наследование, связь и исключение.
Наследование обозначается стрелкой, направленной от потомка к предку (рис. 4). Формально семантика отношения определена в [2].
а) б)
Рисунок 4 - Наследование в NVL
а) спецификация наследования; б) пример наследования
Основные следствия установления наследования между классами и/или категориями следующие:
Отношение наследования является предпорядком.
Потомок наследует от предка методы и атрибуты со всеми ограничениями. При этом методы и атрибуты в потомке могут дополняться и перекрываться. Исходные атрибуты могут перекрываться только за счет сужения области значений. Условия в категориях так же могут переопределяться только путем сужения области истинности в потомке.
Каждый экземпляр класса-потомка связан отношением наследования строго с одним экземпляром класса-предка. При этом значение каждого атрибута экземпляра-предка представляет собой объединение значений соответствующих атрибутов его потомков. Таким образом, наследование значений атрибутов происходит снизу вверх, а ограничений на значения сверху вниз.
В классе (категории) непосредственно доступны все атрибуты, объявленные в нем самом, в его предках и в его потомках.
Атрибуты и методы Concept-класса неявно переопределяются (становятся терминальными в смысле [2]) в его непосредственных потомках.
С целью повышения качества проектирования на наследование введены ограничения, представленные в таблице 1.
Таблица 1 - Ограничения наследования
Может наследовать от: |
Concept-класс |
Abstract-класс |
Entity-класс |
State-класс |
Категория |
|
Объект |
||||||
Concept-класс |
+ |
- |
- |
- |
- |
|
Abstract-класс |
+ |
+ |
- |
- |
- |
|
Entity-класс |
+ |
+ |
- |
- |
- |
|
State-класс |
- |
- |
+ |
+ |
- |
|
Категория |
- |
+ |
+ |
+ |
+ |
Отношение связи соответствует связи один-ко-многим или многие-ко-многим в реляционных базах данных. Устанавливается только между классами. Связь изображается сплошной прямой или ломанной линией с кружком на конце у подчиненного класса (рис. 5).
а) б)
Рисунок 5 - Связи в NVL а) спецификация; б) пример связи
Если прямая ссылка может иметь несколько значений (случай многие-ко-многим), кружок ставится с обоих концов линии. В этом случае выбор главного и подчиненного класса зависит только от предпочтений проектировщика. Линия подписывается именами прямой и обратной ссылки разделенными знаком «->». В подчиненном классе появляется явный ссылочный атрибут, через который происходит прямое связывание экземпляров подчиненного класса с экземплярами главного класса (внешний ключ). В главном классе, при этом, неявно образуется обратный атрибут-ссылка.
Отношение исключения связывает два объекта и означает, что их экстенсионалы не пересекаются. На проектной диаграмме оно устанавливается только между категориями, поскольку все классы не связанные отношением наследования, связаны отношением исключения по умолчанию [2]. На практике его удобно использовать как предложение ELSE по отношению к условию, определяющему связанную категорию. Например, категория X определяется условием b и связана с категорией Y отношением исключения. Тогда категория Y определяется условием not b. Исключение изображается прямой или ломанной сплошной линией (рис. 6).
а) б)
Рисунок 5 - Исключение в NVL
а) спецификация; б) пример
В предложенном примере проектная диаграмма (рис. 1) позволяет продемонстрировать почти все особенности и возможности NVL.
Рекурсивные вычисления разберем на примере другой упрощенной предметной области. Производственное предприятие выпускает изделия, состоящие из сборочных единиц. На изделия поступают заказы. Необходимо рассчитать подетальную плановую потребность (План) на каждую сборочную единицу и ее стоимость с учетом стоимости составных частей (Стоимость). Оба атрибута вычисляются рекурсивно. Проектная диаграмма представлена на рисунке 7.
Рисунок 7 - Проектная диаграмма «Подетальное планирование»
Рекурсивные вычисления в общем случае выполняются, если:
Имеется связь между двумя классами в одной ветви наследования (в примере - это «Узел -> Части»).
Вычисление производится с помощью определения рекурсивного атрибута минимум двумя формулами, одна из которых рекурсивна. Примеры рекурсивных атрибутов: «Потребность» и «Стоимость».
Рекурсивная формула содержит конструкцию <ссылка на класс в ветви наследования>.<рекурсивный атрибут> или зависит от атрибута, формула которого имеет такую конструкцию. Пример первого случая - формула атрибута «Потребность» в классе «Часть», второго - формула атрибута «Стоимость» в категории «Узел».
Нерекурсивная формула должна быть определена в категории класса, в котором проводятся рекурсивные вычисления. В примере - это «Потребность» в категории «Изделие» и «Стоимость» в категории «Деталь».
Разработана программная среда Information Systems Developer Studio (ISDS), которая позволяет строить проектные диаграммы на NVL, и автоматически генерирует схему базы данных и программный код для расчетных данных. Сейчас проводится тестирование этой среды на практических примерах. Предварительно можно сказать, что процесс проектирования плюс разработки в ISDS намного проще, легче и дешевле, однако необходимо решать проблему оптимизации генерируемого кода.
проектный диаграмма информационный visual
Литература
Robert B. France, Sodipto Ghosh, Trung Dinh-Trong. Model-Driven Development Using UML 2.0: Promises and Pitfalls, Computer (IEEE Computer Society. V.38, No2, February 2005)
Белых А.В., Ольховик О.В. N-Модель данных. // «ИЗВЕСТИЯ ЮФУ. Технические науки. Тематический выпуск «Интеллектуальные САПР», 2009. (в печати).
Белых А.В., Ковалев С.М., Ольховик О.В. Декларативный язык для N-модели данных. // «ВЕСТНИК РГУПС», 2009. (в печати).
U2 Partners, «Unified Modeling Language: Superstructure», version 2.0, 3rd revised submission to OMG RFP ad/00-09-02, http://www.omg.org/cgi-bin/ doc?ad/2003-04-01, April 2003.
Federal Information Processing Standards Publication 184, Announcing the Standard for INTEGRATION DEFINITION FOR INFORMATION MODELING (IDEF1X), December 1993.
Размещено на Allbest.ru
...Подобные документы
Особенности разработки информационных систем с использованием унифицированного языка моделирования UML. Основные этапы рационального унифицированного процесса разработки информационных систем с примерами и иллюстрациями. Реализация информационной системы.
методичка [950,2 K], добавлен 23.01.2014Унифицированный язык моделирования (UML) как стандартный инструмент для создания "чертежей" программного обеспечения. Визуализирование, специфицирование, конструирование и документирование артефактов программных систем. Правила языка, диаграммы классов.
курсовая работа [613,9 K], добавлен 24.11.2010Система обработки заказов. Создание диаграммы вариантов использования. Принципы и этапы формирования диаграммы последовательности действий и кооперативной диаграммы. Параметры и типы операций атрибутов классов, направления реализации связей между ними.
курсовая работа [735,9 K], добавлен 22.12.2013Разработка программного продукта с помощью языка программирования Visual Basic. Описание интерфейса пользователя и возможностей программы. Исходный код основных модулей. Программа, демонстрирующая основные возможности диаграмм и среды Visual Basic.
контрольная работа [989,9 K], добавлен 29.03.2011Описание бизнес-процесса "Химчистка" в визуальной среде Visual Paradigm UML 2.0. Основные виды взаимодействия между актерами и вариантами использования. Составление диаграммы классов, последовательности, коммуникаций и состояний. Кодогенерация на Delphi.
контрольная работа [1,4 M], добавлен 04.04.2011Основы языка программирвоания C++. Элементы управления в Microsoft Visual C++. Алгоритмические конструкции языка программирования Visual C++ и базовые элементы управления. Глобальные константы и переменные. Управление программой с помощью клавиатуры.
курсовая работа [1,7 M], добавлен 08.04.2015Унифицированный язык моделирования. Методы объектно-ориентированного анализа и проектирования. Создание диаграммы последовательности и диаграммы сотрудничества. Главная диаграмма классов. Добавление связей между классами. Зависимость между пакетами.
курсовая работа [2,7 M], добавлен 23.06.2011Развитие информационных систем. Современный рынок финансово-экономического прикладного программного обеспечения. Преимущества и недостатки внедрения автоматизированных информационных систем. Методы проектирования автоматизированных информационных систем.
дипломная работа [1,5 M], добавлен 22.11.2015Особенности объектно-ориентированного проектирования. Основные понятия объектно-ориентированного подхода. Основы языка UML, варианты его использования. Диаграммы классов и взаимодействия. Разработка диаграммы прецедентов (вариантов использования).
курсовая работа [1,1 M], добавлен 13.05.2014Особенности проектирования информационной системы при моделировании работы справочной системы, содержащей следящие поля (наименования, характеристики, размеры). Проектирование UML-диаграммы, алгоритм разработки архитектуры программного обеспечения.
курсовая работа [449,8 K], добавлен 26.05.2016Особенности языка ассемблера. Классификация основных информационных систем. Выбор средств разработки автоматизированной справочной системы. Выбор средства проектирования и разработки приложения. Технические условия работы и порядок работы с программой.
дипломная работа [222,2 K], добавлен 25.03.2013Язык структурированных запросов SQL (Structured Query Language) и его место в сфере доступа к информации в реляционных базах данных. Структура и основные типы данных языка. Синтаксис и семантика главных операторов SQL, последние стандарты языка.
реферат [98,7 K], добавлен 29.03.2012Жизненный цикл автоматизированных информационных систем. Основы методологии проектирования автоматизированных систем на основе CASE-технологий. Фаза анализа и планирования, построения и внедрения автоматизированной системы. Каскадная и спиральная модель.
курсовая работа [1,1 M], добавлен 20.11.2010Общие принципы построения и основные этапы проектирования корпоративной информационной системы. Архитектура и требования, предъявляемые к системе. Метод функционального моделирования SADT. Основные средства языка UML. Аппаратно-программная платформа.
дипломная работа [867,2 K], добавлен 20.05.2015Анализ предметной области, этапы проектирования автоматизированных информационных систем. Инструментальные системы разработки программного обеспечения. Роль CASE-средств в проектировании информационной модели. Логическая модель проектируемой базы данных.
курсовая работа [410,6 K], добавлен 21.03.2011Общая характеристика склада как объекта хозяйственной деятельности. Создание диаграммы прецедентов и последовательности. Построение корпоративной диаграммы сотрудничества. Предназначение диаграммы классов и компонентов. Генерация программного кода C++.
курсовая работа [222,0 K], добавлен 23.06.2011Понятие и структура, общие требования к информационной системе, этапы разработки и предъявляемые требования. Особенности работы системы управления базами данных, технологии и принцип работы. Разработка, преобразование ER-диаграммы в реляционную модель.
курсовая работа [383,8 K], добавлен 26.03.2015Краткая характеристика предметной области. Актуальность разработки объектно-ориентированной модели информационной системы для учебной библиотеки. Создание диаграммы вариантов использования, последовательности, кооперативной диаграммы, диаграммы классов.
курсовая работа [381,8 K], добавлен 01.06.2009Оценка предметной области: концептуальные требования; выявление информационных объектов и связей между ними; построение базы данных. Описание входных и выходных данных информационной системы "Магазин компьютерной техники". Анализ диаграммы прецедентов.
курсовая работа [294,8 K], добавлен 13.04.2014Сферы применения методологии RAD. Особенности создания программного продукта, предназначенного для редактирования тестов. Рассмотрение моделей жизненного цикла: каскадная, спиральная. Этапы построения начальной контекстной диаграммы. Анализ DFD-диаграммы.
курсовая работа [1,9 M], добавлен 19.09.2012