Файл: Моделирование предметной области «Учет товаров» с помощью UML (Объектно-ориентированное проектирование приложений).pdf
Добавлен: 25.04.2023
Просмотров: 442
Скачиваний: 4
1.4. Bold — реализация MDA в Delphi
В настоящее время, производители программного обеспечения уже разработали несколько инструментов для реализации MDA-технологии в различных средах программирования. Среди этих инструментов имеется и программный продукт для реализации MDA в Delphi. Шведская компания BoldSoft MDE Aktiebolag, активный участник консорциума OMG, создала первую версию программного продукта Bold for Delphi в 1999 году, а в 2000-м в состав Borland Enterprise Studio 6 вместе с Delphi 6 вошла доработанная и расширенная версия Bold 3. В сентябре 2002 года в состав Delphi 7 Studio Architect вошла версия 4 Bold этого продукта. В начале октября фирма Borland приобрела шведскую компанию BoldSoft, так что в настоящее время Bold является продуктом фирмы Borland.
Основные возможности Bold for Delphi:
- встроенный текстовый редактор UML-моделирования для создания моделей приложения;
- возможность импорта и экспорта UML-моделей из Rational Rose — CASE-средства компании Rational Software;
- автоматическая генерация баз данных практически для всех реляционных СУБД, существующих в настоящее время (доступных через интерфейсы BDE, ADO, dbExpress);
- поддержка модификации базы данных с сохранением информации (DataBase Evolution);
- возможность хранения базы данных в XML-документе без использования СУБД;
- поддержка подмножества языка UML;
- автоматическая генерация программного кода на языке Object Pascal;
- автоматическая генерация экранных форм для просмотра и редактирования данных;
- поддержка создания многозвенных приложений и тонких клиентов на базе DCOM.
Даже перечисленных основных возможностей продукта более чем достаточно для кардинального сокращения трудозатрат на создание приложений баз данных практически любой сложности. По отзывам разработчиков, применение Bold позволяет сократить время разработки приложений баз данных в 5-10 раз.
На практике использование Bold дает следующие преимущества:
- полностью устраняется этап ручного создания базы данных — все таблицы, поля, индексы, ключи генерируются автоматически в соответствии с моделью. Для использования конкретной СУБД достаточно подключить и настроить один из адаптеров баз данных, входящих в состав Bold. Есть возможность создания собственных адаптеров баз данных;
- модификация базы данных превращается в тривиальный процесс — после внесения необходимых изменений в модель следует только сгенерировать новую базу данных;
- использование языка OCL позволяет полностью абстрагироваться от SQL-диалекта конкретной СУБД. Язык SQL становится практически ненужным и используется редко, хотя возможность его применения сохраняется;
- автоматически генерируемые экранные формы избавляют разработчика от необходимости рутинного кодирования графического интерфейса для ввода и редактирования данных. При этом автоматически задействуется интерфейс drag&drop для перемещения мышью необходимых данных между таблицами.
Используя Bold, разработчик:
- не создает базу данных, а формирует модель приложения на языке UML;
- работает не с таблицами, полями и ключами базы данных, а с объектами созданной им модели приложения — классами и их атрибутами;
- подключает визуальные компоненты для отображения данных не к таблицам БД, а к объектам модели;
- не пишет запросы на языке SQL, а формирует предложения на гибком и мощном диалекте языка OCL.
В этом случае разработка ведется на бизнес-уровне.
Принципиальным моментом при использовании Bold является трехуровневая схема создания приложения, которая включает уровень данных, бизнес-уровень и графический интерфейс пользователя. И в данном случае это — не абстракция, а реальность, воплощенная в конкретные наборы компонентов Bold, с которыми имеет дело разработчик. Так, если обычно при создании приложения баз данных в Delphi визуальные компоненты подключаются к полям или таблицам БД, то при работе с Bold все они подключаются к промежуточному слою — к объектам бизнес-уровня. Формирование бизнес-уровня приложения является одной из основных функций Bold. Другая важнейшая функция — обеспечение взаимодействия между бизнес-уровнем и уровнем данных (СУБД), то есть объектно-реляционное отображение и взаимодействие. Такое взаимодействие включает автоматическую, прозрачную для разработчика, трансляцию OCL в операторы SQL, выполнение операций с таблицами БД и т.д.
Bold работает не только на этапе разработки приложения, но и на этапе его исполнения. Именно это качество позволяет называть Bold инструментом реализации MDA. Любое CASE-средство, сколь бы совершенным оно ни было, предназначено для реализации только этапов проектирования и моделирования. Оно, конечно, может включать также возможности генерации кода и генерации базы данных, но после запуска приложения CASE-система уже не функционирует, ее «присутствие» на этом этапе по сути уже не ощущается. Функционирование же Bold коренным образом отличается от функционирования других CASE-средств: сохраняя модель приложения в исполняемом файле, Bold на этапе выполнения приложения использует эту модель для управления бизнес-уровнем, для контроля целостности объектного пространства, для управления взаимодействием бизнес-уровня с уровнем данных и графическим интерфейсом.
Bold — это не генератор кода, хотя такая возможность в него заложена. При использовании Bold в принципе не обязательно генерировать код классов модели.
В итоге можно сделать вывод, что Bold for Delphi — это, с одной стороны, среда разработки, позволяющая на этапе создания формировать объектное пространство (бизнес-уровень) и реализовывать бизнес-логику приложения, а с другой — программная система, обеспечивающая на этапе выполнения функционирование бизнес-уровня и его интеграцию с СУБД (уровнем данных) и графическим интерфейсом пользователя.
II. Разработка программного продукта
2.1. Проектирование приложения «Магазин бытовой техники»
Чтобы посмотреть на практике, как создаются приложения с использованием MDA-технологии, a также унифицированным языком моделирования UML, необходимо разработать программный продукт «Магазин бытовой техники».
Программная система "Магазин бытовой техники" предназначена для директора магазина бытовой техники. Данная система обеспечивает хранение сведений о магазине, об имеющихся в нем товарах, о торговых базах и товарах, хранящихся на этих базах. Магазин осуществляет закупку товара на разных базах. Магазин состоит из нескольких отделов. Каждым отделом управляет администратор. Каждый отдел включает несколько групп товара. Каждая группа товара закупается только на одной конкретной закупочной базе.
Магазин характеризуется названием, классом, номером, а также имеет другие сведения: юридический адрес, ИНН, электронный адрес.
Товары, имеющиеся в магазине и на базах, характеризуются: названием, количеством, гарантийным сроком, ценой (закупочной/реализации). Директор магазина имеет возможность изменить цену товара по своему усмотрению, осуществить закупку недостающего товара на базе.
Также, директор может узнать следующие сведения:
-
-
-
- какие товары имеются в магазине (на базе);
- какие товары, и в каком количестве имеются в отделе магазине, конкретной группе товаров;
- список отделов;
- список групп товара каждого отдела;
- список администраторов магазина;
- статистические данные: общее количество товара в магазине; общая стоимость товара; общее число отделов и групп товара в магазине; общее количество товара и общая стоимость товара по каждому отделу и группе товара; количество проданного товара, выручка от проданного товара, прибыль от проданного товара за определенный период времени;
- на каких базах, и в каких количествах есть товар нужного наименования.
-
-
В программной системе предусмотрена возможность выдачи документа, представляющего собой заявку на закупку товара на базе, а также товарный чек на проданный товар в формате документа Microsoft Word. Возможно, экспортировать остатки товара в магазине и на базах в Microsoft Excel.
Создание модели приложения
Как было сказано выше, для создания модели приложения я буду использовать программный продукт IBM Rational Rose Enterprise Edition 7.0. Учитывая все требования, предъявляемые к программной системе, создаем ее UML модель (рис. 2.1).
Рис 2.1. UML-модель программной системы
Описание классов модели приложения:
Магазин – класс, содержащий сведения о магазине: название, класс магазина, номер, юридический адрес, ИНН, телефон, электронный адрес.
Отдел – класс, содержащий сведения обо всех отделах магазина, характеризуется названием.
Группа товаров – класс, содержащий сведения о товарных группах, характеризуется названием.
Товар – родительский класс для классов: «товар в магазине» и «товар на складе». Класс «товар» содержит общие сведения этих двух классов: наименование товара, цена закупки и гарантийный срок.
Товар в магазине – дочерний класс класса «товар», содержит сведения о товарах, хранящихся в магазине. Помимо родительских атрибутов, класс «товар в магазине» имеет атрибуты: количество товара, цена реализации, количество продажи, сумма. Атрибут «количество продажи» предназначен для хранения информации о количестве единиц товара, помеченного на продажу. Атрибут «сумма» - это вычисляемый атрибут. Он не хранится в базе данных, а автоматически вычисляется в приложении. Хранит информацию о стоимости данного наименования товара, т.е. это произведение количества товара на его цену реализации.
Товар на складе – дочерний класс класса «товар», содержит сведения о товарах, хранящихся на различных закупочных базах. Помимо родительских атрибутов, класс «товар на складе» имеет атрибуты: количество товара и количество заказа. Атрибут «количество заказа» предназначен для хранения информации о количестве единиц товара, помеченного на заказ в магазин.
Товарная база – класс, содержащий сведения о закупочных базах. Данный класс содержит атрибуты: название базы и адрес.
Администратор – класс, содержащий сведения об администраторах отделов. Данный класс имеет атрибуты: фамилия, имя, отчество, дата рождения.
Продажа – класс, содержащий сведения о продажах магазина, т.е. это журнал продаж. Данный класс не связан с другими классами и содержит следующие атрибуты: номер продажи, дата продажи, наименование товара, количество, цена закупки, цена реализации, сумма. Атрибут «сумма» - это вычисляемый атрибут, хранит информацию о сумме проданного товара, т.е. это произведение количества проданного товара на его цену реализации.
Заказ – класс, содержащий сведения о заказах товара в магазин, также не связан с другими классами, т.к. является просто журналом заказов. Содержит атрибуты: номер заказа, дата заказа, наименование товара, количество, цена закупки.
Отсутствие связи двух последних классов с другими классами объясняется тем, что это журналы, которые хранят сведения о продажах и закупках когда-либо производимых в магазине. Если, например, устанавливать связь класса «продажа» с классом «товар в магазине», то при удалении товара в магазине из журнала продаж данный товар тоже удалится, а нам необходимо, чтобы продажа оставалась всегда.
Описание ассоциаций между классами приведено в таблице 2.1.
Табл. 2.1. Описание ассоциаций между классами
|
Ассоциация |
Описываемые бизнес правила |
|
Магазин – Отдел |
|
|
Отдел – Группа товаров |
|
|
Отдел –Администратор |
|
|
Группа товаров – Товар в магазине |
|
|
Магазин –Товарная база |
|
Продолжение табл. 2.1
|
Товарная база – Группа товаров |
|
|
Товарная база – Товар на складе |
|
|
Группа товаров – Товар на складе |
|