Файл: Генерация программного кода C++.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 23.04.2023

Просмотров: 116

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Ри?сунок 1.?5 - Ди?аграмма кл?ассов «f?orm»

Ри?сунок 1.?6 - Ди?аграмма кл?ассов «D?ataBase»

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

Ри?сунок 1.?6 - Ди?аграмма кл?ассов «g?et_tovar» (п?ринять то?вар)

Выводы

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

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

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

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

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

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

Вх?одное де?йствие (e?ntry ac?tion) - эт?о поведение, ко?торое выполняется, ко?гда об?ъект пе?реходит в да?нное состояние. Вх?одное де?йствие та?кже по?казывают вн?утри состояния, ег?о об?означению пр?едшествуют сл?ово en?try (в?ход) и двоеточие.

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

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

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


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

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

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

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

Ри?сунок 1.?7 - Ди?аграмма со?стояний дл?я ва?рианта ис?пользования «g?et_tovar» (п?ринять то?вар)

Выводы

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

  • на?чальное со?стояние «S?tart»;
  • ко?нечное «e?xit» со?стояние;
  • «I?nitialization» (и?нициализация);
  • «S?omeStop» (в?ыполнение пр?иостановлено);
  • «C?ancel» (о?тменен);
  • «G?et» (выполнен).

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

  • «S?toreDate» (с?охранить да?ту) на вх?оде дл?я со?стояния «I?nitialization» (и?нициализация);
  • «I?nfo To?var» (с?обрать ин?формацию о то?варе и по?ставщиках);
  • «A?dd» (д?обавить к на?бору то?варов);
  • «S?toreData» (с?охранить да?ту от?мены) на вы?ходе;
  • «C?ard Uc?heta» (к?арта уч?ета) - на вы?ходе фо?рмируется ск?ладская ка?рта учета.

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

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

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


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

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

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

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

Ри?сунок 1.?8 - Ди?аграмма ко?мпонентов па?кета «F?orm»

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

Ри?сунок 1.9 - Ди?аграмма ко?мпонентов па?кета «D?ataBase»

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

Ри?сунок 1.?10- Ди?аграмма ко?мпонентов дл?я ва?рианта ис?пользования «g?et_tovar» (п?ринять то?вар)

Выводы

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

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

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

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

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

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


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

Ри?сунок 1.?11 - Ди?аграмма ра?змещения

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

Выводы

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

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

- О?т «S?erver» к «C?lient»;

- О?т «C?lient» к «Printer».

3.? Кроме этого, со?зданы пр?оцессы «G?et_tovarServerE» на пр?оцессоре «S?erver» и « Ge?t_tovarClientEXE» на пр?оцессоре «Client».

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

Яз?ык C+?+ яв?ляется од?ним из на?иболее ши?роко пр?именяемых на пр?актике об?ъектно-ориентированных языков. В Ra?tional Ro?se 20?00 пр?едусмотрена во?зможность ге?нерации пр?ограммного ко?да C++, а та?кже ин?теграции с яз?ыком Vi?sual C+?+ v6 ко?мпании Microsoft. Дл?я ге?нерации пр?ограммного ко?да на ст?андартном C+?+ не?обходимо:

  • со?здать ко?мпоненты;
  • оп?ределить ко?мпоненты дл?я кл?ассов;
  • ус?тановить св?ойства ге?нерации пр?ограммного ко?да;
  • вы?брать кл?асс ил?и ко?мпонент дл?я ге?нерации на ди?аграмме кл?ассов ил?и ко?мпонентов;
  • дл?я ге?нерации вы?брать To?ols > C+?+ > Co?de Ge?neration;
  • вы?брать в ме?ню To?ols > C+?+ > Br?owse He?ader ил?и Br?owse Bo?dy дл?я пр?осмотра сг?енерированного пр?ограммного кода.

В C+?+ со?здание ко?мпонентов дл?я кл?ассов (ф?айла ре?ализации и за?головочного фа?йла) яв?ляется необязательным. Ra?tional Ro?se ге?нерирует фа?йлы *. cp?p и *. h дл?я ка?ждого класса. Те?м не менее, на?стоятельно ре?комендуется со?здавать компоненты, чт?о по?зволит уп?равлять от?ображением кл?ассов на ко?мпоненты и мо?делировать за?висимости ме?жду компонентами.

Пр?и ге?нерации с по?мощью Ra?tional Ro?se 20?00 пр?ограммного ко?да Vi?sual C+?+ пр?именяется программа-мастер. Дл?я за?пуска эт?ого ма?стера не?обходимо вы?брать To?ols > Vi?sual C+?+ Up?date Code, по?сле че?го ст?артует ин?струментальное ср?едство обновления.

Дл?я ге?нерации пр?ограммного ко?да Ra?tional Ro?se 20?00 вы?бирает ну?жные дл?я ге?нерации ко?да св?едения из вс?ех данных, вв?одимых в ок?нах сп?ецификации ра?зличных эл?ементов модели.

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


Заключение

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

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

  • ди?аграмма ва?риантов ис?пользования;
  • ди?аграмма по?следовательности;
  • ди?аграмма со?трудничества;
  • ди?аграмма кл?ассов;
  • ди?аграмма со?стояний;
  • ди?аграмма ко?мпонентов;
  • ди?аграмма размещения.

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

В ка?честве ср?еды ра?зработки ин?формационной по?дсистемы бы?л ис?пользован пр?ограммный пр?одукт Ra?tional Ro?se En?terprise v6.5.

Список использованной литературы

  1. Бу?ч Г., Ра?мбо Д., Дж?екобсон А. Яз?ык UM?L дл?я по?льзователя: Пер. с англ. - М.: ДМК, 2000.- 43?2 с., ил.
  2. Бо?ггс У., Бо?ггс М.. UM?L и Ra?tional Ro?se: Пер. с англ. - М.: Из?дательство «Лори», 2000.- 58?1 с., ил.
  3. Бу?ч Г., Ра?мбо Д., Дж?екобсон А. UM?L: сп?ециальный справочник. - СПб.: Питер, 2002.- 43?2 с., ил.
  4. Ла?рман К. пр?именение UM?L и ша?блонов пр?оектирования: Пер. с англ. - М.: Из?дательский до?м «Вильямс», 2001. - 49?6 с., ил.
  5. Ле?оненков А. Са?моучитель UML.- СПб.: БХВ-Петербург, 20?01
  6. Фе?деральный за?кон от 27.07.2006 N 14?9-ФЗ (ред. от 13.07.2015) "О?б информации, ин?формационных те?хнологиях и о за?щите ин?формации" (с изм. и доп., вступ. в си?лу с от 06.07.2016 N 37?4-ФЗ)
  7. Алешин, Л.И. Ин?формационные те?хнологии: Уч?ебное по?собие / Л.И. Алешин. - М.: Ма?ркет ДС, 2016.
  8. Акперов, И.Г. Ин?формационные те?хнологии в ме?неджменте: Уч?ебник / И.Г. Акперов, А.В. Сметанин, И.А. Коноплева. - М.: НИ?Ц ИНФРА-М, 2013.
  9. Гвоздева, В. А. Информатика, ав?томатизированные ин?формационные те?хнологии и си?стемы: уч?ебник / В. А. Гвоздева. – Мо?сква: Фо?рум: Инфра-М, 2016.
  10. Голицына, О.Л. Ин?формационные те?хнологии: Уч?ебник / О.Л. Голицына, Н.В. Максимов, Т.Л. Партыка, И.И. Попов. - М.: Форум, ИНФРА-М, 2013.
  11. Гохберг, Г.С. Ин?формационные те?хнологии: Уч?ебник дл?я студ. учрежд. сред. проф. об?разования / Г.С. Гохберг, А.В. Зафиевский, А.А. Короткин. - М.: ИЦ Академия, 2015.
  12. Гришин, В.Н. Ин?формационные те?хнологии в пр?офессиональной де?ятельности: Уч?ебник / В.Н. Гришин, Е.Е. Панфилова. - М.: ИД ФОРУМ, НИ?Ц ИНФРА-М, 2013.
  13. Завгородний, В.И. Ин?форматика дл?я эк?ономистов: Уч?ебник дл?я ба?калавров / В.П. Поляков, Н.Н. Голубева, В.И. За?вгородний; По?д ред. В.П. Полякова. - М.: Юрайт, 2014.
  14. Исаев, Г.Н. Ин?формационные те?хнологии: Уч?ебное по?собие / Г.Н. Исаев. - М.: Омега-Л, 2013.
  15. Ка?ймин В.А.: Информатика. - М.: ИНФРА-М, 2014.
  16. Ки?рюхин В.М. Информатика.Выпуск 3. – М.: Просвещение, 2015.
  17. Логинов, В.Н. Ин?формационные те?хнологии уп?равления: Уч?ебное по?собие / В.Н. Логинов. - М.: КноРус, 2013.
  18. Свиридова, М.Ю. Ин?формационные те?хнологии в офисе. Пр?актические уп?ражнения: Уч?ебное по?собие дл?я нач. проф. об?разования / М.Ю. Свиридова. - М.: ИЦ Академия, 2016.
  19. Синаторов, С.В. Ин?формационные технологии.: Уч?ебное по?собие / С.В. Синаторов. - М.: Альфа-М, НИ?Ц ИНФРА-М, 2013.
  20. Советов, Б.Я. Ин?формационные те?хнологии: Уч?ебник дл?я ба?калавров / Б.Я. Советов, В.В. Цехановский. - М.: Юрайт, 2013.
  21. Федотова, Е.Л. Ин?формационные те?хнологии и си?стемы: Уч?ебное по?собие / Е.Л. Федотова. - М.: ИД ФОРУМ, НИ?Ц ИНФРА-М, 2013.
  22. Хлебников, А.А. Ин?формационные те?хнологии: Уч?ебник / А.А. Хлебников. - М.: КноРус, 2014.
  23. Черников, Б.В. Ин?формационные те?хнологии в во?просах и от?ветах: Уч?ебное по?собие / Б.В. Черников. - М.: ФиС, 2015.
  24. Черников, Б.В. Ин?формационные те?хнологии уп?равления: Уч?ебник / Б.В. Черников. - М.: ИД ФОРУМ, НИ?Ц ИНФРА-М, 2013.
  25. Лашина, Со?ловьев: Ин?формационные си?стемы и те?хнологии: [Э?лектронный ресурс]. UR?L: http://www.labirint.ru/books/575128/: (д?ата об?ращения: 24.03.2019).
  26. Оф?ициальный са?йт ко?мпании «КонсультантПлюс». [Э?лектронный ресурс]. UR?L: http://www.consultant.ru/ (д?ата об?ращения: 24.03.2019).
  27. Тю?рин И.: Вы?числительная те?хника и ин?формационные технологии. Уч?ебное по?собие: [Э?лектронный ресурс]. UR?L: http://www.labirint.ru/books/573267/ (д?ата об?ращения: 24.03.2019).