Разработка объектно-ориентированной модели информационной подсистемы для учета движения товаров на складе фирмы с использованием языка UML

Тип работы:
Курсовая
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Содержание

ВВЕДЕНИЕ

1 КРАТКАЯ ХАРАКТЕРИСТИКА ПРЕДМЕТНОЙ ОБЛАСТИ

2 СОЗДАНИЕ ДИАГРАММЫ ПРЕЦЕДЕНТОВ

3 СОЗДАНИЕ ДИАГРАММЫ ПОСЛЕДОВАТЕЛЬНОСТИ

4 СОЗДАНИЕ ДИАГРАММЫ СОТРУДНИЧЕСТВА

5 СОЗДАНИЕ ДИАГРАММЫ КЛАССОВ

6 СОЗДАНИЕ ДИАГРАММЫ СОСТОЯНИЙ ДЛЯ КЛАССОВ

7 СОЗДАНИЕ ДИАГРАММЫ КОМПОНЕНТОВ

8 СОЗДАНИЕ ДИАГРАММЫ РАЗМЕЩЕНИЯ

9 ГЕНЕРАЦИЯ ПРОГРАММНОГО КОДА С++

ЗАКЛЮЧЕНИЕ

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

Приложение А. Листинг кода приложения на языке С++

Введение

информационная подсистема учет товар склад

Язык UML (Unified Modeling Language) представляет собой общецелевой язык визуального моделирования, который разработан для спецификации, визуализации, проектирования и документирования компонентов программного обеспечения, бизнес-процессов и других систем. Язык UML одновременно является простым и мощным средством моделирования, который может быть эффективно использован для построения концептуальных, логических и графических моделей сложных систем самого различного целевого назначения.

Целью курсового проекта является разработка объектно-ориентированной модели информационной подсистемы для учета движения товаров на складе фирмы с использованием языка UML.

В качестве среды разработки информационной подсистемы был использован программный продукт Rational Rose 2000 Enterprise v6.5.

1 Характеристика предметной области

Общая характеристика склада как объекта хозяйственной деятельности. В данном курсовом проекте в качестве предметной области используется склад фирмы. Форм отчетности и действий, производимых на складе, весьма широк, но основной задачей является учет товара.

Основные функции выполняют заведующий складом, в обязанности которого входит проведение ревизий и составление оборотов за период, и кладовщик, который осуществляет инвентаризацию и прием/выдачу товара.

Обоснование актуальности разработки объектно-ориентрованной модели информационной подсистемы. Актуальность разработки объектно-ориентированной модели информационной подсистемы для учета движения товаров на складе обуславливается применением языка UML (Unified Modeling Language).

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

Язык UML основан на некотором числе базовых понятий, которые могут комбинироваться и расширяться таким образом, что специалисты объектного моделирования получают возможность самостоятельно разрабатывать модели больших и сложных систем в самых различных областях приложений. При этом одним из основных принципов построения моделей сложных систем является принцип абстрагирования, который предписывает включать в модель только те аспекты проектируемой системы, которые имеют непосредственное отношение к выполнению системой своих функций или своего целевого предназначения. При этом все второстепенные детали опускаются, чтобы чрезмерно не усложнять процесс анализа и исследования полученной модели.

Формулировка задачи проектирования. Задачей курсового проекта является разработка объектно-ориентированной модели информационной подсистемы для учета движения товаров на складе фирмы с использованием языка UML.

В качестве среды разработки информационной подсистемы был использован программный продукт Rational Rose 2000 Enterprise v6.5.

Выводы

В результате проектирования должна быть получена объектно-ориентированная модель информационной подсистемы для учета движения товаров на складе. Модель будет включать в себя:

— диаграмму вариантов использования;

— диаграмму последовательности;

— диаграмму сотрудничества;

— диаграмму классов;

— диаграмму состояний;

— диаграмму компонентов;

— диаграмму размещения;

— программный код на языке С++.

2 Создание диаграммы прецедентов

Диаграммой прецедентов, или использования (use case diagram) называется диаграмма, на которой показана совокупность прецедентов и актеров, а также отношения (зависимости, обобщения и ассоциации) между ними.

Она позволяет выделить внешние системы, контактирующие с системой, основные процессы и их взаимосвязь. Диаграммы прецедентов дают возможность выделить функциональную структуру системы, не вдаваясь в детали ее реализации. Кроме того, производится предварительное выделение объектов системы и их классификация. На основании построенной модели составляется план разработки системы.

Элементы диаграммы:

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

— актер представляет собой любую внешнюю по отношению к моделируемой системе сущность, которая взаимодействует с системой и использует ее функциональные возможности. Актеры используются для моделирования внешних по отношению к проектируемой системе сущностей, которые взаимодействуют с системой и используют ее в качестве отдельных пользователей.

— отношения ассоциации устанавливают, какую конкретную роль играет актер при взаимодействии с экземпляром варианта использования.

Рисунок 2.1 — Диаграмма прецедентов

В качестве актеров на диаграмме (рисунок 2. 1) используются объекты:

— «zav_sklad» (заведующий складом), который управляет вариантами использования:

— «oborot_mes» (оборот за месяц);

— «reviziya» (ревизия);

— «klad» (кладовщик), управляющий следующими вариантами использования:

— «get_tovar» (принять товар);

— «send_tovar» (отправить товар);

— «inventar» (инвентаризация).

Между вариантами использования и действующими лицами используется вязь коммуникации (communication). Направление стрелки позволяет понять, кто инициирует коммуникацию.

Для построения остальных диаграмм, выбран прецедент «get_tovar» (принять товар), который описывает получение нового товара от поставщика и создание карточки складского учета.

3 Создание диаграммы последовательности

Диаграмма последовательности (sequence diagram) — это диаграмма взаимодействий, акцентирующая внимание на временной упорядоченности сообщений. Она отражают поток событий, происходящих в рамках варианта использования. Конкретный экземпляр потока событий называется сценарием.

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

На диаграмме последовательности объект изображается в виде прямоугольника на вершине пунктирной вертикальной линии. Эта вертикальная линия называется линией жизни (lifeline) объекта. Она представляет собой фрагмент жизненного цикла объекта в процессе взаимодействия.

Каждое сообщение изображается в виде стрелки между линиями жизни двух объектов. Сообщения появляются в том порядке, как они показаны на странице, сверху вниз. Каждое сообщение помечается как минимум именем сообщения; при желании можно добавить также аргументы и некоторую управляющую информацию и, кроме того, показать самоделегирование (self-delegation) -сообщение, которое объект посылает самому себе, при этом стрелка сообщения указывает на ту же самую линию жизни.

В данной модели для создания диаграммы последовательности был использован вариант использования «get_tovar» (принять товар), взятый из предыдущей диаграммы прецедентов (рисунок 3. 1).

Рисунок 3.1 — Диаграмма последовательности «get_tovar» (принять товар)

На данную диаграмму помещены следующие объекты:

— «klad» (кладовщик) — действующее лицо;

— «Add/Select Tovar Form» — содержит форму ввода или выбора товара;

— «Add/Select Postav Form» — содержит форму ввода или выбора поставщика товара;

— «Card Sklad_Uchet» — форма карты складского учета, которая создается после ввода всех данных и является итоговым документом;

— «DataBase» — содержит информацию о поставщиках и товарах, на основании информации этого объекта формируется карта складского учета

Сообщения между объектами на диаграмме:

— «Open» — открыть форму;

— «Cancel» — отмена действия;

— «Query to DataBase» — запрос к базе данных на выбор товара;

— «Answer from DataBase» — наименование товара;

— «Query to DataBase on generation Sklad_Uchet card» — запрос к базе данных на выбор поставщика и генерацию карты складского учета;

— «Generate» — карта складского учета.

После создания объектов и сообщений между ними было выполнено соотнесение объектов с классами, а сообщений с операциями. Все названия объектов и сообщений совпадают с названиями классов и операций соответственно.

Выводы

1. На диаграмме последовательности «get_tovar» (принять товар), размещены пять объектов и девять сообщений между ними.

2. Каждый объект был соотнесен с классом, а сообщение с операцией.

4 Создание диаграммы сотрудничества

Вторым видом диаграммы взаимодействия является кооперативная диаграмма (collaboration diagram).

Подобно диаграммам последовательности, кооперативные диаграммы отображают поток событий через конкретный сценарий варианта использования. Кооперативные диаграммы заостряют внимание на взаимосвязях вообще, то есть на них отражается наличие сообщений от клиентов к серверам.

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

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

Согласно созданной выше диаграмме «get_tovar» (принять товар), была создана диаграмма сотрудничества (рисунок 4. 1).

На диаграмме расположены объекты:

— «sklad»;

— «Add/Select Tovar Form»;

— «Add/Select Postav Form»;

— «Card Sklad_Uchet»;

— «DataBase».

Назначение данных объектов аналогично соответствующим объектам диаграммы последовательности (рисунок 3. 1).

Рисунок 4.1 — Диаграмма сотрудничества для варианта использования «get_tovar» (принять товар)

Выводы

Была создана диаграмма сотрудничества «get_tovar» (принять товар), на которой представлена вся та информация, которая была и на диаграмме последовательности, но кооперативная диаграмма по-другому описывает поток событий. Из нее легче понять связи между объектами, однако труднее разобраться в последовательности событий.

5 Создание диаграммы классов

Диаграммы классов (class diagram) позволяет создавать логическое представление системы, на основе которого создается исходный код описанных классов. Значки диаграммы позволяют отображать сложную иерархию систем, взаимосвязи классов (сlasses) и интерфейсов (interfaces). На диаграммах классов изображаются также атрибуты классов, операции классов и ограничения, которые накладываются на связи между классами Данный тип диаграмм противоположен по содержанию диаграмме сотрудничества, на которой отображаются объекты системы.

Каждый класс на диаграмме выглядит в виде прямоугольника, разделенного на три части. В первой содержится имя класса, во второй — его атрибуты. В последней части содержатся операции класса, отражающие его поведение (действия, выполняемые классом).

Обычно для описания системы создают несколько диаграмм классов. На одних показывают некоторое подмножество классов и отношения между классами подмножества. На других отображают то же подмножество, но вместе с атрибутами и операциями классов. Третьи соответствуют только пакетам классов и отношениям между ними. По умолчанию существует одна диаграмма классов, называемая Главной (Main), на которой показывают пакеты классов модели (рисунок 5. 1).

Рисунок 5.1 — Главная диаграмма классов информационной подсистемы

Внутри каждого пакета также имеется «главная диаграмма», включающая в себя все классы этого пакета (рисунок 5. 2, 5. 3).

Рисунок 5.2 — Диаграмма классов «form»

Рисунок 5.3 — Диаграмма классов «DataBase»

После создания главой диаграммы классов создается диаграмма классов для сценария «get_tovar» (принять товар), на которой отражаются все классы, атрибуты и связи между ними (рисунок 5. 4).

Рисунок 5.4 — Диаграмма классов «get_tovar» (принять товар)

Выводы

1. На диаграмме классов «get_tovar» (принять товар) были представлены все классы и взаимосвязи между ними.

2. Указанная множественность (multiplicity) показывает, сколько экземпляров одного класса взаимодействуют с помощью этой связи с одним экземпляром другого класса в данный момент времени. Так же были добавлены атрибуты и методы в некоторые классы.

6 Создание диаграммы состояний для классов

Диаграммы состояний определяют все возможные состояния, в которых может находиться конкретный объект, а также процесс смены состояний объекта в результате наступления некоторых событий.

На диаграмме имеются два специальных состояния — начальное (start) и конечное (stop). Процессы, происходящие в тот момент, когда объект находится в определенном состоянии, называются действиями (actions).

С состоянием можно связывать следующие данные: деятельность, входное действие, выходное действие и событие.

Входное действие (entry action) — это поведение, которое выполняется, когда объект переходит в данное состояние. Входное действие также показывают внутри состояния, его обозначению предшествуют слово entry (вход) и двоеточие.

Выходное действие (exit action) подобно входному действию. Однако оно осуществляется как составная часть процесса выхода из данного состояния. Как и входное, выходное действие является непрерываемым.

Переходом (transition) называется перемещение объекта из одного состояния в другое. На диаграмме все переходы изображают в виде стрелки, начинающейся на первоначальном состоянии и заканчивающейся последующим.

У перехода существует несколько спецификаций. Они включают события, аргументы, ограждающие условия, действия и посылаемые события.

Событие (event) — это то, что вызывает переход из одного состояния в другое. Событие размещают на диаграмме вдоль линии перехода.

Большинство переходов должны иметь события, так как именно они, прежде всего, заставляют переход осуществиться.

Действие (action) является непрерываемым поведением, осуществляющимся как часть перехода. Входные и выходные действия показывают внутри состояний, поскольку они определяют, что происходит, когда объект входит или выходит из состояния. Диаграммы состояний не надо создавать для каждого класса, они применяются только в сложных случаях. Если объект класса может существовать в нескольких состояниях и в каждом из них ведет себя по-разному, для него может потребоваться диаграмма состояний.

В данном курсовом проекте диаграмма состояний создается для варианта использования «get_tovar» (принять товар). Она представлена на рисунке 6.1.

Рисунок 6.1 — Диаграмма состояний для варианта использования «get_tovar» (принять товар)

Выводы

На диаграмме состояний расположены следующие состояния:

— начальное состояние «Start»;

— конечное «exit» состояние;

— «Initialization» (инициализация);

— «SomeStop» (выполнение приостановлено);

— «Cancel» (отменен);

— «Get» (выполнен).

Для каждого из состояний созданы следующие действия:

— «StoreDate» (сохранить дату) на входе для состояния «Initialization» (инициализация);

— «Info Tovar» (собрать информацию о товаре и поставщиках);

— «Add» (добавить к набору товаров);

— «StoreData» (сохранить дату отмены) на выходе;

— «Card Ucheta» (карта учета) — на выходе формируется складская карта учета.

7 Создание диаграммы компонентов

Диаграммы компонентов (component diagram) предназначены для распределения классов и объектов по компонентам при физическом проектировании системы. На них изображены компоненты программного обеспечения и связи между ними. При этом на такой диаграмме выделяют два типа компонентов: исполняемые компоненты и библиотеки кода. Часто данный тип диаграмм называют диаграммами модулей.

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

Каждый класс модели (или подсистема) преобразуется в компонент исходного кода. После создания они сразу добавляются к диаграмме компонентов.

У системы может быть несколько диаграмм компонентов в зависимости от числа подсистем или исполняемых файлов. Каждая подсистема является пакетом компонентов. В общем случае пакеты — это совокупности компонентов.

Диаграммы компонентов применяются теми участниками проекта, кто отвечает за компиляцию системы. Из нее видно, в каком порядке надо компилировать компоненты, а также какие исполняемые компоненты будут созданы системой. На такой диаграмме показано соответствие классов реализованным компонентам. Она нужна там, где начинается генерация кода.

На рисунке 7.1 показаны компоненты пакета «Form». Они содержат классы пакета «Form» логического представления системы.

Рисунок 7.1 — Диаграмма компонентов пакета «Form»

На рисунке 7.2 показаны компоненты пакета «DataBase». Они содержат классы пакета «DataBase» логического представления системы.

Рисунок 7.2 — Диаграмма компонентов пакета «DataBase»

Общая диаграмма компонентов для рассматриваемого варианта использования «get_tovar» (принять товар) на рисунке 7.3.

Рисунок 7. 2- Диаграмма компонентов для варианта использования «get_tovar» (принять товар)

Выводы

1. Так как система разрабатывается на языке C++, то у каждого класса имеется свой собственный заголовочный файл и файл с расширением *. cpp.

2. Для каждого класса была создана спецификация пакета и тело пакета. Они соединены с помощью связей dependency.

8 Создание диаграммы размещения

Диаграмма размещения (deployment diagram) отражает физические взаимосвязи между программными и аппаратными компонентами системы. Она показывает размещение объектов и компонентов в распределенной системе.

Каждый узел на диаграмме размещения представляет собой некоторый тип вычислительного устройства — в большинстве случаев часть аппаратуры. Эта аппаратура может быть простым устройством или датчиком, а может быть и мэйнфреймом.

Диаграмма размещения показывает физическое расположение сети и местонахождение в ней различных компонентов. Для каждой модели создается только одна такая диаграмма, отображающая процессоры (Processor), устройства (Device) и их соединения.

Построенная диаграмма размещения показана на рисунке 8.1.

Рисунок 8.1 — Диаграмма размещения

Как видно из диаграммы, клиентская и серверная программы будут работать на разных местах. Через закрытую сеть будет осуществляться их сообщение. С клиентской частью соединен принтер, так как именно клиентская программа печатает каты складского учета.

Выводы

1. На созданной диаграмме размещения расположены процессоры «Server» и «Client», а также устройство «Printer».

2. Между этими элементами проведены следующие связи:

— От «Server» к «Client»;

— От «Client» к «Printer».

3. Кроме этого, созданы процессы «Get_tovarServerE» на процессоре «Server» и «Get_tovarClientEXE» на процессоре «Client».

9 Генерация программного кода C++

Язык C++ является одним из наиболее широко применяемых на практике объектно-ориентированных языков. В Rational Rose 2000 предусмотрена возможность генерации программного кода C++, а также интеграции с языком Visual C++ v6 компании Microsoft. Для генерации программного кода на стандартном C++ необходимо:

— создать компоненты;

— определить компоненты для классов;

— установить свойства генерации программного кода;

— выбрать класс или компонент для генерации на диаграмме классов или компонентов;

— для генерации выбрать Tools > C++ > Code Generation;

— выбрать в меню Tools > C++ > Browse Header или Browse Body для просмотра сгенерированного программного кода.

В C++ создание компонентов для классов (файла реализации и заголовочного файла) является необязательным. Rational Rose генерирует файлы *. cpp и *. h для каждого класса. Тем не менее, настоятельно рекомендуется создавать компоненты, что позволит управлять отображением классов на компоненты и моделировать зависимости между компонентами.

При генерации с помощью Rational Rose 2000 программного кода Visual C++ применяется программа-мастер. Для запуска этого мастера необходимо выбрать Tools > Visual C++ Update Code, после чего стартует инструментальное средство обновления.

Для генерации программного кода Rational Rose 2000 выбирает нужные для генерации кода сведения из всех данных, вводимых в окнах спецификации различных элементов модели.

Частичный листинг сгенерированного программного кода на языке С++ представлен в приложении А.

Заключение

В процессе выполнения данного курсового проекта была разработана объектно-ориентированная модель информационной подсистемы для учета движения товаров на складе фирмы с использованием языка UML.

В ходе ее разработки были изучены основы языка моделирования UML и построены следующие диаграммы:

— диаграмма вариантов использования;

— диаграмма последовательности;

— диаграмма сотрудничества;

— диаграмма классов;

— диаграмма состояний;

— диаграмма компонентов;

— диаграмма размещенияю

И сгенерирован программный код на языке С++.

В качестве среды разработки информационной подсистемы был использован программный продукт Rational Rose 2000 Enterprise v6.5.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Буч Г., Рамбо Д., Джекобсон А. Язык UML для пользователя: Пер. с англ. — М.: ДМК, 2000.- 432 с., ил.

2. Боггс У., Боггс М. UML и Rational Rose: Пер. с англ. — М.: Издательство «Лори», 2000.- 581 с., ил.

3. Буч Г., Рамбо Д., Джекобсон А. UML: специальный справочник. — СПб.: Питер, 2002.- 432 с., ил.

4. Ларман К. применение UML и шаблонов проектирования: Пер. с англ. — М.: Издательский дом «Вильямс», 2001. — 496 с., ил.

5. Леоненков А. Самоучитель UML.- СПб.: БХВ-Петербург, 2001

Приложение А

Листинг кода приложения на языке С++

//## begin module%1. 2%. codegen_version preserve=yes

// Read the documentation to learn more about C++ code generator

// versioning.

//## end module%1. 2%. codegen_version

//## Module: DataBase%455 7238F03A5; Task specification

//## Subsystem: dataBase%45571B6A0339

//## Source file: D: RR2000Rose 2000C++sourcedataBaseDataBase. h

#ifndef DataBase_h

#define DataBase_h 1

//## begin module%455 7238F03A5. additionalIncludes preserve=no

//## end module%455 7238F03A5. additionalIncludes

//## begin module%455 7238F03A5. includes preserve=yes

//## end module%455 7238F03A5. includes

// Add/Select Tovar

#include «FormAddSelect Tovar. h»

// Add/Select Postav

#include «FormAddSelect Postav. h»

// Card Sklad_Uche

#include «FormCard Sklad_Uche. h»

//## begin module%455 7238F03A5. declarations preserve=no

//## end module%455 7238F03A5. declarations

//## begin module%455 7238F03A5. additionalDeclarations preserve=yes

//## end module%455 7238F03A5. additionalDeclarations

//## begin DataBase%455 3764E01EE. preface preserve=yes

//## end DataBase%455 3764E01EE. preface

//## Class: DataBase%455 3764E01EE

//## Category: DataBase%455 718 440 037

//## Subsystem: dataBase%45571B6A0339

//## Persistence: Transient

//## Cardinality/Multiplicity: n

class DataBase

{//## begin DataBase%455 3764E01EE. initialDeclarations preserve=yes

//## end DataBase%455 3764E01EE. initialDeclarations

public:

//## Constructors (generated)

DataBase ();

DataBase (const DataBase & right);

//## Destructor (generated)

~DataBase ();

//## Other Operations (specified)

//## Operation: Query to DataBase%45 5376E8004B

Add/Select Tovar Query_to_DataBase ();

//## Operation: Query to DataBase on generation Sklad_Uchet card%45 5376EF009B

Card Sklad_Uchet Query_to_DataBase_on_generation_Sklad_Uchet_card ();

//## Get and Set Operations for Associations (generated)

//## Association: DB-Card%45538D6F01DE

//## Role: DataBase: :<the_Card_Sklad_Uchet>%45538D700027

const UnboundedSetByReference< Card_Sklad_Uchet> get_the_Card_Sklad_Uchet () const;

void set_the_Card_Sklad_Uchet (UnboundedSetByReference< Card_Sklad_Uchet> value);

protected:

// Additional Protected Declarations

//## begin DataBase%455 3764E01EE. protected preserve=yes

//## end DataBase%455 3764E01EE. protected

private:

//## Get and Set Operations for Class Attributes (generated)

//## Attribute: IDCard%45538A53012F

const Integer get_IDCard () const;

void set_IDCard (Integer value);

//## Attribute: Tovar%45538A5F028B

const String get_Tovar () const;

void set_Tovar (String value);

// Additional Private Declarations

//## begin DataBase%455 3764E01EE. private preserve=yes

//## end DataBase%455 3764E01EE. private

private: //## implementation

// Data Members for Class Attributes

//## begin DataBase: :IDCard%45538A53 012 °F. attr preserve=no private: Integer {U}

Integer IDCard;

//## end DataBase: :IDCard%45538A53 012 °F. attr

//## begin DataBase: :Tovar%45538A5F028B. attr preserve=no private: String {U}

String Tovar;

//## end DataBase: :Tovar%45538A5F028B. attr

// Data Members for Associations

//## Association: DB-Card%45538D6F01DE

//## begin DataBase: :<the_Card_Sklad_Uchet>%45538D700027. role preserve=no public: Card_Sklad_Uchet {0.n -> 1. nRHN}

UnboundedSetByReference< Card_Sklad_Uchet> the_Card_Sklad_Uchet;

//## end DataBase: :<the_Card_Sklad_Uchet>%45538D700027. role

// Additional Implementation Declarations

//## begin DataBase%455 3764E01EE. implementation preserve=yes

//## end DataBase%455 3764E01EE. implementation

};

//## begin DataBase%455 3764E01EE. postscript preserve=yes

//## end DataBase%455 3764E01EE. postscript

// Class DataBase

//## Get and Set Operations for Class Attributes (inline)

inline const Integer DataBase: :get_IDCard () const

{ //## begin DataBase: :get_IDCard%45538A53 012 °F. get preserve=no

return IDCard;

//## end DataBase: :get_IDCard%45538A53 012 °F. get

}

inline void DataBase: :set_IDCard (Integer value)

{ //## begin DataBase: :set_IDCard%45538A53 012 °F. set preserve=no

IDCard = value;

//## end DataBase: :set_IDCard%45538A53 012 °F. set

}

inline const String DataBase: :get_Tovar () const

{

//## begin DataBase: :get_Tovar%45538A5F028B. get preserve=no

return Tovar;

//## end DataBase: :get_Tovar%45538A5F028B. get

}

inline void DataBase: :set_Tovar (String value)

{ //## begin DataBase: :set_Tovar%45538A5F028B. set preserve=no

Tovar = value;

//## end DataBase: :set_Tovar%45538A5F028B. set

}

//## Get and Set Operations for Associations (inline)

inline const UnboundedSetByReference< Card_Sklad_Uchet>

DataBase: :get_the_Card_Sklad_Uchet () const

{ //## begin DataBase: :get_the_Card_Sklad_Uchet%45538D700027. get preserve=no

return the_Card_Sklad_Uchet;

//## end DataBase: :get_the_Card_Sklad_Uchet%45538D700027. get

}

inline void DataBase: :set_the_Card_Sklad_Uchet

(UnboundedSetByReference< Card_Sklad_Uchet> value)

{ //## begin DataBase: :set_the_Card_Sklad_Uchet%45538D700027. set preserve=no

the_Card_Sklad_Uchet = value;

//## end DataBase: :set_the_Card_Sklad_Uchet%45538D700027. set

}

//## begin module%455 7238F03A5. epilog preserve=yes

//## end module%455 7238F03A5. epilog

#endif

ПоказатьСвернуть
Заполнить форму текущей работой