Файл: Моделирование предметной области. Учет предоставленных услуг салоном красоты с помощью UML.pdf
Добавлен: 05.04.2023
Просмотров: 594
Скачиваний: 5
К середине 90-х годов различными авторами было п’редложено нескол’ько десятков методов ОО моделирован’ия, каждый из которых испол’ьзовал свою графическую нотацию. П’ри этом любой их этих методов имел свои сил’ьные стороны, но не позволял построит’ь достаточно полную модел’ь ПС, показат’ь ее «со всех сторон», то ест’ь, все необходимые п’роекции. К тому же отсутствие стандарта ОО моделирован’ия затрудняло для разработчиков выбор наиболее подходящего метода, что п’репятствовало широкому расп’ространен’ию ОО подхода к разработке ПС.
По зап’росу Object Management Group (OMG) – орган’изации, ответственной за п’ринятие стандартов в области объектных технологий и баз данных назревшая п’роблема ун’ификации и стандартизации была решена авторами трех наиболее популярных ОО методов – Г.Бучем, Д.Рамбо и А.Джекобсоном, которые объединенными усилиями создали версию UML 1.1, утвержденную OMG в 1997 году в качестве стандарта.
Любой язык состоит из словаря и п’равил комбин’ирован’ия слов для получен’ия осмысленных конструкций. Так, в частности, устроены языки п’рограммирован’ия, таковым является и UML. Отличител’ьной его особенност’ью является то, что словар’ь языка образуют графические элементы. Каждому графическому символу соответствует конкретная семантика, поэтому модел’ь, созданная одн’им разработчиком, может однозначно быт’ь понята другим, а также п’рограммным средством, интерп’ретирующим UML. Отсюда, в частности, следует, что модел’ь ПС, п’редставленная на UML, может автоматически быт’ь переведена на ОО язык п’рограммирован’ия (такой, как Java, C++, VisualBasic), то ест’ь, п’ри наличии хорошего инструментал’ьного средства визуал’ьного моделирован’ия, поддерживающего UML, построив модел’ь, мы получим и заготовку п’рограммного кода, соответствующего этой модели.
Следует подчеркнут’ь, что UML – это именно язык, а не метод. Он объясняет, из каких элементов создават’ь модели и как их читат’ь, но н’ичего не говорит о том, какие модели и в каких случаях следует разрабатыват’ь. Чтобы создат’ь метод на базе UML, надо дополн’ит’ь его описан’ием п’роцесса разработки ПС. П’римером такого п’роцесса является Rational Unified Process, который будет рассматриват’ься в последующих стат’ьях.
Модел’ь п’редставляется в виде сущностей и отношен’ий между н’ими, которые показываются на диаграммах.
Сущности – это абстракции, являющиеся основными элементами моделей. Имеется четыре типа сущностей – структурные (класс, интерфейс, компонент, вариант испол’ьзован’ия, кооперация, узел), поведенческие (взаимодействие, состоян’ие), группирующие (пакеты) и аннотационные (комментарии). Каждый вид сущностей имеет свое графическое п’редставлен’ие. Сущности будут подробно рассмотрены п’ри изучен’ии диаграмм.
Отношен’ия показывают различные связи между сущностями. В UML оп’ределены следующие типы отношен’ий:
- Зависимост’ь показывает такую связ’ь между двумя сущностями, когда изменен’ие одной из н’их – независимой – может повлият’ь на семантику другой – зависимой. Зависимост’ь изображается пунктирной стрелкой, нап’равленной от зависимой сущности к независимой.
- Ассоциация – это структурное отношен’ие, показывающее, что объекты одной сущности связаны с объектами другой. Графически ассоциация показывается в виде лин’ии, соединяющей связываемые сущности. Ассоциации служат для осуществлен’ия навигации между объектами. Нап’ример, ассоциация между классами «Заказ» и «Товар» может быт’ь испол’ьзована для нахожден’ия всех товаров, указанных в конкретном заказе – с одной стороны, или для нахожден’ия всех заказов в которых ест’ь данный товар, – с другой. Понятно, что в соответствующих п’рограммах должен быт’ь реализован механ’изм, обеспечивающий такую навигацию. Если требуется навигация тол’ько в одном нап’равлен’ии, оно показывается стрелкой на конце ассоциации. Частным случаем ассоциации является агрегирован’ие – отношен’ие вида «целое» – «част’ь». Графически оно выделяется с помощ’ью ромбика на конце около сущности-целого.
- Обобщен’ие – это отношен’ие между сущност’ью-родителем и сущност’ью-потомком. По существу, это отношен’ие отражает свойство наследован’ия для классов и объектов. Обобщен’ие показывается в виде лин’ии, заканчивающейся треугол’ьн’ичком нап’равленным к родител’ьской сущности. Потомок наследует структуру (атрибуты) и поведен’ие (методы) родителя, но в то же время он может имет’ь новые элементы структуры и новые методы. UML допускает множественное наследован’ие, когда сущност’ь связана более чем с одной родител’ьской сущност’ью.
- Реализация – отношен’ие между сущност’ью, оп’ределяющей спецификацию поведен’ия (интерфейс) с сущност’ью, оп’ределяющей реализацию этого поведен’ия (класс, компонент). Это отношен’ие обычно испол’ьзуется п’ри моделирован’ии компонент и будет подробнее описано в последующих стат’ьях.
Диаграммы. В UML п’редусмотрены следующие диаграммы:
- Диаграммы, описывающие поведен’ие системы:
- Диаграммы состоян’ий (State diagrams),
- Диаграммы деятел’ьностей (Activity diagrams),
- Диаграммы объектов (Object diagrams),
- Диаграммы последовател’ьностей (Sequence diagrams),
- Диаграммы взаимодействия (Collaboration diagrams);
- Диаграммы, описывающие физическую реализацию системы:
- Диаграммы компонент (Component diagrams);
- Диаграммы развертыван’ия (Deployment diagrams).
П’редставлен’ие уп’равлен’ия модел’ью. Пакеты.
Мы уже говорили о том, что для того чтобы модел’ь была хорошо пон’имаемой человеком необходимо орган’изоват’ь ее иерархически, оставляя на каждом уровне иерархии небол’ьшое число сущностей. UML включает средство орган’изации иерархического п’редставлен’ия модели – пакеты. Любая модел’ь состоит из набора пакетов, которые могут содержат’ь классы, варианты испол’ьзован’ия и п’рочие сущности и диаграммы. Пакет может включат’ь другие пакеты, что позволяет создават’ь иерархии. В UML не п’редусмотрено отдел’ьных диаграмм пакетов, но он’и могут п’рисутствоват’ь на других диаграммах. Пакет изображается в виде п’рямоугол’ьн’ика с закладкой.
Что обеспечивает UML.
- иерархическое описан’ие сложной системы путем выделен’ия пакетов;
- формализацию функционал’ьных требован’ий к системе с помощ’ью аппарата вариантов испол’ьзован’ия;
- детализацию требован’ий к системе путем построен’ия диаграмм деятел’ьностей и сценариев;
- выделен’ие классов данных и построен’ие концептуал’ьной модели данных в виде диаграмм классов;
- выделен’ие классов, описывающих пол’ьзовател’ьский интерфейс, и создан’ие схемы навигации экранов;
- описан’ие п’роцессов взаимодействия объектов п’ри выполнен’ии системных функций;
- описан’ие поведен’ия объектов в виде диаграмм деятел’ьностей и состоян’ий;
- описан’ие п’рограммных компонент и их взаимодействия через интерфейсы;
- описан’ие физической архитектуры системы.
Несмотря на всю п’ривлекател’ьност’ь UML, его было бы затрудн’ител’ьно испол’ьзоват’ь п’ри реал’ьном моделирован’ии ПС без инструментал’ьных средств визуал’ьного моделирован’ия. Такие средства позволяют оперативно п’редставлят’ь диаграммы на экране дисплея, документироват’ь их, генерироват’ь заготовки п’рограммных кодов на различных ОО языках п’рограммирован’ия, создават’ь схемы баз данных. Бол’ьшинство из н’их включают возможности реинжин’иринга п’рограммных кодов – восстановлен’ия оп’ределенных п’роекций модели ПС путем автоматического анализа исходных кодов п’рограмм, что очен’ь важно для обеспечен’ия соответствия модели и кодов и п’ри п’роектирован’ии систем, наследующих функционал’ьност’ь систем-п’редшественн’иков.
2. ПОСТРОЕНИЕ ОБЪЕКТНОЙ МОДЕЛИ ПРЕДМЕТНОЙ ОБЛАСТИ «УЧЕТ ПРЕДОСТАВЛЕННЫХ УСЛУГ САЛОНОМ КРАСОТЫ ФИАЛКА» С ПОМОЩЬЮ UML
2.1 Общая характеристика салона красоты Фиалка
Салон красоты "Фиалка" - это один из крупнейших салонов красоты в городе, который уже много лет помогает своим клиентам стать красивее, ярче и успешнее. В своей работе мастера салона применяют новые методы и технологии для поддержания красоты и молодости. Мы уже много лет сотрудничаем с мировыми брендами, от которых получаем наиболее эффективные средства по уходу за кожей. А специалисты, являясь профессионалами высокого уровня, постоянно наращивают свой опыт и совершенствуют мастерство. Благодаря такому комплексному подходу, наша студия красоты является лидирующей на рынке косметических услуг города и области.
Работа специалистов, в абсолютном большинстве случаев, достигает положительного результата, и поэтому очень многие гости становятся нашими постоянными клиентами. Это служит самой главной и высокой оценкой работы салона, так как мы понимаем, что достигаем того, что хочет наш потребитель.
Салон "Фиалка" стремится создать для каждого клиента свой неповоримый, индивидуальный и запоминающийся образ. Услуги, которые оказывает наша компания, помогут сделать каждого человека неотразимым, придать уверенности и сил и сделать жизнь еще прекраснее.
В зависимости от характера связей между подразделениями предприятия различают следующие типы организационных структур: линейную, функциональную, линейно-функциональную и матричную.
В работе данного салона используется линейная структура управления.
2.2 Описание функционирования предметной области «Учет предоставленных услуг салоном красоты»
В салоне красоты работают четыре секции:
- Парикмахерская
- Маникюр-педикюр
- Тату-салон
- Массаж.
При обращении клиентов в салон красоты с целью записаться в какую-либо секцию осуществляется регистрация, которая предполагает следующие действия:
- Данные о клиентах заносятся в таблицу с указанием 5 полей: Фамилия, Имя, Возраст, Телефон, Секция.
- Клиенты распределяются по секциям, в которые подана заявка.
Для организации корректной работы салона, согласования работы секций, занятости мастеров, администратор салона красоты заполняет расписание.
При посещении салона красоты клиент заносится в таблицу с указанием секции. Все клиенты должны быть занесены в главную таблицу с указанием секции.
В программе UML создадим пять полей: Имя задается строкой (string) «Name»; Фамилия задается строкой (string) «Famil»; Возраст хранится в числовой переменной (int) «Age»; телефон задается строкой (string) «Tel»; Секция, к которой относится клиент салона красоты, задается строкой (string) «Sekc».
TPeople = class
Name: String;
Famil: String;
Age: Integer;
tel: String;
sekc: String;
constructor Create(AName: String);
end;
При этом ввод полей используется двумя способами:
Загрузка значения из сохраненного файла с расширением LST. (Рис 2.1.)
Метод организован с помощью функции OpenDlg, при этом каждая строка класса считывается, как отдельное значение.
var F: TextFile;
i: Integer;
begin
try
with OpenDlg, PersonsList.Items do
begin
if Not Execute then Exit;
LoadFromFile(FileName);
AssignFile(F, Copy(FileName,1,Length(FileName)-4)+'.lso');
Reset(F);
i := 0;
while Not EOF(F) do
begin
Objects[i] := TPeople.Create('');
Readln(F, (Objects[i] as TPeople).Name);
Readln(F, (Objects[i] as TPeople).Famil);
Readln(F, (Objects[i] as TPeople).Age);
Readln(F, (Objects[i] as TPeople).tel);
Readln(F, (Objects[i] as TPeople).sekc);
Inc(i);
end;
CloseFile(F);
end;
except
on E: EFOpenError do ShowMessage('Ошибка открытия файла');
end;end;
Рис. 2.1 Загрузка файла.
Вторым методом заполнения таблицы является ввод с помощью компонентов Edit.(Рис. 2.2.)
Рис. 2.2 Заполнение таблицы путем компонента Edit.
Причем значение поля «Секция» выбирается из значений компонента Combobox и присваивается строке «Sekc».
Введенные значения могут корректироваться путем выбора нужного значения и нажатия кнопки «Изменить»
Удаление одной записи осуществляется с помощью выбора значения и нажатия кнопки «Удалить».
Для того, чтобы очистить все записи нужно нажать кнопку «Очистить».
Оба способа удаления осуществлены следующими методами:
procedure TMainForm.ToolButton4Click(Sender: TObject);
begin
with PersonsList do Items.Delete(ItemIndex);
end;
procedure TMainForm.ToolButton5Click(Sender: TObject);
begin
PersonsList.Items.Clear;
end;
После заполнения таблицы клиентов салона красоты появляется необходимость сохранить ее для дальнейшего использования. Это осуществляется нажатием кнопки «Сохранить». После нажатия этой кнопки осуществляется открытие диалогового окна, куда указывается папка хранения файла и его название.
Как уже упоминалось ранее, в салоне красоты у каждой секции есть свое расписание. В программе открыть расписание можно с помощью кнопки «Посмотреть расписание». После нажатия данной кнопки открывается вторая форма приложения салона красоты.