Курсовая работа по UML Программирование Belarussian State University of Informatics and Radioelectronics 29 pag. Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) Министерство образования Республики Беларусь Учреждение образования БелорусскиЙ государственный университет информатики и радиоэлектроники Факультет информационных технологий и управления Кафедра информационных технологий автоматизированных систем Дисциплина: Объектно-ориентированное программирование и проектирование Пояснительная записка к курсовому проекту на тему СИСТЕМА ДЛЯ ВВОДА ИНФОРМАЦИИ ПРИ ПРИЁМЕ СОТРУДНИКА НА РАБОТУ БГУИР КП 1-53 01 02 06 023 ПЗ Студент Руководитель Ю.А. Полякевич Т. С. Боброва Минск 2018 Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) РЕФЕРАТ СИСТЕМА ДЛЯ ВВОДА ИНФОРМАЦИИ ПРИ ПРИЁМЕ СОТРУДНИКА НА РАБОТУ: курсовой проект / Ю.А. Полякевич – Минск: БГУИР, 2018, – п.з. –34 с., чертежей (плакатов) – 3 л. формата А3. Курсовой проект на тему «Система для ввода информации при приёме сотрудника на работу» разработан с целью создания макета системы для приёма сотрудника на работу, формирования полноценной картины данной системы, показа взаимодействия её элементов: формы, базы данных. Пояснительная записка к дипломному проекту состоит из введения, 3 разделов, включающих, анализ технического задания и создания спецификации к нему, проектирования системы, а именно создание различных диаграмм, реализацию системы, заключение, список использованных источников и приложение, содержащее листинг кода отдельных классов. Для разработки проекта системы был выбран объектно-ориентированный язык проектирования UML. Проект представляет собой описание создания системы для ввода информации при приёме сотрудника на работу. В нем присутствуют различные диаграммы, каждая из которых демонстрирует определенный аспект проекта. В результате выполнения курсовой работы была спроектирована модель системы, написан глоссарий, а также составлены чертежи. В результате был получен прототип полноценной системы для обработки заявок при приёме сотрудника на работу. В дальнейшем данная модель системы может быть доработана, усовершенствована и использована различными организациями. Модель имеет необходимые диаграммы для написания ядра приложения, которое способно обрабатывать, систематизировать заявки. Созданная модель является также хорошим примером создания UML диаграмм и может служить примером написания моделей других проектов. Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) Учреждение образования «Белорусский государственный университет информатики и радиоэлектроники» Факультет информационных технологий и управления УТВЕРЖДАЮ Заведующий кафедрой –––––––––––––––––––––––– (подпись) ––––––––––––––––––– 2018г. ЗАДАНИЕ по курсовому проектированию Студенту Полякевичу Юрию Александровичу––––––––––––––––––– 1. Тема проекта Объектно-ориентированный анализ и проектирование программного обеспечения. Программное обеспечение для приема сотрудника на работу 2. Срок сдачи студентом законченного проекта– ––––20 мая 2018 г.––– 3. Исходные данные к проекту Подразделение/кафедра выбирается путем позиционирования на определенной (нужной) строке. Подразделения меняются сравнительно часто и поэтому их названия и коды хранятся в соответствующих справочниках. Должности также выбираются в соответствии со штатным расписанием. Если соответствующие должности уже заняты, то ввод не может быть осуществлен. Каждому сотруднику в соответствии с имеющимися ограничениями должен быть присвоен тарифный разряд. Наряду с другими сведениями, вводится информация о знании иностранных языков. Языки выбираются из списка. Выбор может быть множественным (т.е. сотрудник может владеть более чем одним языком). Все выбранные позиции должны быть видны; пользователь может корректировать свой выбор перед тем, как окончательно занести данные в БД. Кроме названия языка, фиксируется еще и степень владения языком. Запрещается принимать на работу лиц пенсионного возраста. При приеме на преподавательскую должность образование должно быть высшим. При приеме на должность выше ассистента научно-педагогический стаж должен быть больше 3 лет. Научнопедагогический стаж не может быть больше общего стажа. После занесения всей информации о сотруднике в БД каждому сотруднику автоматически присваивается табельный номер. 4. Содержание расчетно-пояснительной записки (перечень вопросов, которые подлежат разработке) Введение. 1.Анализ технихнического задания на курсовое проектирование. 2.Проектирование ситемы. 3.Реализация системы.. Заключение 5. Перечень графического материала (с точным обозначением обязательных чертежей и графиков) 1. Диаграмма вариантов использования. –––––––––––––––––––––––––––– 2. Диаграмма классов. –––––––––––––––– –––––––––––––––– 3. Диаграмма активности. –––––––––––––––––––––––––––– – 6. Консультант по проекту (с обозначением разделов проекта) Т. С. Боброва– 7. Дата выдачи задания –––– –17 февраля 2018 г.–––––––––––––––––––– – 8. Календарный график работы над проектом на весь период проектирования (с обозначением сроков выполнения и трудоемкости отдельных этапов): –––––––––––––––– – раздел 1 к 15.03 – 15 %; ––––––––––––––––– раздел 2 к 15.04 – 50 %; –– –––––––––––––– –––––––––––––––––– –––– раздел 3 к 15.05 – 15 %; ––––––––––––––––––––– ––––––––––––––––– оформление пояснительной записки и графического материала к 20. 05 – 20 % Защита курсового проекта с 20.05 по 05.06.2018г.–––––––––––––––––––– Руководитель– –––––––– Т. С. Боброва 3 Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) (подпись) Задание принял к исполнению – ––––––– Ю. А. Полякевич (дата и подпись студента) 4 Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) СОДЕРЖАНИЕ Введение................................................................................................................... 6 1 Анализ технического задания на курсовое проектирование........................... 9 1.1 Постановка задачи проектирования............................................................ 9 1.2 Составление глоссария проекта................................................................. 10 1.3 Описание дополнительных спецификаций к проекту............................. 10 2 Проектирование системы................................................................................. 12 2.1 Создание модели вариантов использования............................................. 12 2.2 Добавление описаний к вариантам использования..................................13 2.3 Создание диаграммы последовательности............................................... 17 2.4 Создание кооперативной диаграммы.........................................................17 2.5 Создание диаграммы классов 19 2.6 Создание диаграммы состояний................................................................ 21 2.7 Создание диаграммы активности...............................................................22 2.8 Создание диаграммы базы данных............................................................ 23 3 Реализация системы.......................................................................................... 25 3.1 Создание диаграммы компонентов............................................................25 3.2 Создание диаграммы размещения............................................................. 26 3.3 Генерация кода C++ 27 Заключение.............................................................................................................28 Список использованных источников................................................................... 30 Приложение A (обязательное) Листинг кода...................................................... 31 Ведомость курсового проекта.............................................................................. 34 5 Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) ВВЕДЕНИЕ В силу специфичности производства ПО (практически нулевая стоимость тиражирования, очень быстрый процесс устаревания и т. д.) технология его создания очень сильно завязана на человеческом ресурсе и поэтому должна включать в себя организационный и управленческий аспекты. На сегодняшний день в мире существует огромное количество различных процессов для создания ПО. Тем не менее, именно технологий, рассматривающих полный жизненный цикл проекта разработки ПО, сочетающих в себе научный подход, серьезную базу исследований и имеющих историю реального использования и адаптации, относительно немного. В силу специфичности производства ПО для коммерческих предприятий, среди большого количества языков моделирования и проектирования программного обеспечения предпочтение было отдано UML. Он отлично подходит для данной задачи, так как обладает широким спектром различных инструментов. UML (англ. Unified Modeling Language – Унифицированный Язык Моделирования) – графический язык моделирования общего назначения, предназначенный для визуализации, спецификации, конструирования и документирования артефактов программных систем. Среди прочих возможностей UML можно выделить его основные достоинства: - визуализация программных систем с помощью наглядных, интуитивно понятных, однозначно интерпретируемых графических элементов; - построение точных, недвусмысленных и полных моделей программных систем; - конструирование программных систем с последующей генерацией кода из UML модели в какой-либо конкретный язык программирования. Так же возможен и обратный процесс – реконструирование модели по имеющейся программной реализации; документирование требований к программной системе, архитектуры, исходного кода, проектных планов. Данная работа направлена на демонстрацию освоения Rational Rose и UML. В ней используются основные виды диаграмм и на примере задания, указаны их основные характеристики. UML используется для проектирования систем. Он является унифицированным, общепризнанным языком объектно-ориентированного программирования. UML содержит стандартный набор диаграмм и нотаций самых разнообразных видов. UML находится в процессе стандартизации, проводимом консорциумом OMG (Object Management Group), в настоящее время он принят в качестве стандартного языка моделирования и получил широкую поддержку. UML принят на вооружение практически всеми крупнейшими компаниями – производителями программного обеспечения (Microsoft, IBM, Hewlett-Packard, Oracle, Sybase и др.). Кроме того, практически все мировые производители CASE-средств, помимо Rational Software (Rational Rose), поддерживают UML в своих продуктах (Paradigm Plus (CA), System Architect (Popkin Software), Microsoft Visual Modeler и др.). В качестве среды разработки в курсовом проекте используется среда Rational Rose. Данное CASE-средство может быть применено для создания разнообразного объектно-ориентированного программного обеспечения, в первую очередь для платформы Windows, а так же на межплатформенном языке Java. Основные преимущества Rational Rose перед остальными CASE-средствами: • современный интерфейс; • гораздо легче делать классификацию объектов; 6 Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) • возможность добавлять новые уровни в виде пакетов (папок); • проект программного средства представляет собой единую модель; • настройка на различные языки программирования и архитектуры программных систем; • возможность «обратного проектирования» на основе исходных текстов, на различных языках программирования; • возможность конфигурирования системы с помощью модулей расширения. Так же можно выделить преимущества UML. UML объектно-ориентирован, в результате чего методы описания результатов анализа и проектирования семантически близки к методам программирования на современных объектно-ориентированных языках. UML позволяет описать систему практически со всех возможных точек зрения и разные аспекты поведения системы. Диаграммы UML сравнительно просты для чтения после достаточно быстрого ознакомления с его синтаксисом. UML расширяет и позволяет вводить собственные текстовые и графические стереотипы, что способствует его применению не только в сфере программной инженерии. UML получил широкое распространение и динамично развивается. Задачами курсового проекта (работы) как этапа подготовки к дипломному проектированию являются: – освоение, углубление и обобщение знаний, полученных студентами в процессе обучения; – приобретение практических навыков и развитие творческих подходов к решению конкретной инженерной или инженерно-экономической задачи; – формирование умений использовать справочную литературу, нормативную, правовую, нормативно-техническую документацию, осуществлять патентный поиск; – приобретение навыков по оформлению текстовой и графической документации согласно требованиям государственных стандартов и стандарта предприятия Дипломные проекты (работы). общие требования. СТП 01-2017. Целью курсового проекта является объектно-ориентированный анализ и проектирование программного обеспечения. Темой курсового проекта является система для ввода информации при приёме сотрудника на работу. Почему эта тема актуальна? Основной причиной является то, что сейчас достаточно много людей, заинтересованных в быстром и удобном поиске работы, следовательно, данная автоматизированная система будет отличным решением данного вопроса. 7 Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) 1. АНАЛИЗ ТЕХНИЧЕСКОГО ЗАДАНИЯ НА КУРСОВОЕ ПРОЕКТИРОВАНИЕ 1.1 Постановка задачи проектирования Существует организация, которая имеет свою систему обработки заявок при приёме сотрудника. В организации имеется база данных для приёма заявок. Система обработки заявок позволяет пользователю ввести всю необходимую информацию, отправить её в организацию и получить ответ. Также система способна проверять данные, вводимые пользователем на корректность, не допускает приёма на работу лиц пенсионного возраста, и в зависимости от стажа сотрудника и его учёной степени предоставляет те или иные вакансии. За внесение, обновление, достоверность информации отвечает система. Пользователь же может вводить данные, просматривать их, редактировать. После ввода информации пользователем отправляется запрос в систему, где происходит проверка и устанавливается соединение с базой данных. После установления соединения, происходит отправка данных в базу, присвоение табельного номера сотруднику; возвращается сообщение об успешном добавлении сотрудника. В базе хранятся данные о сотруднике: фио, табельный номер сотрудника, дата рождения, дата подачи заявки; данные о степени владения языком: название языка, степень владения, табельный номер сотрудника, а также информация о кафедре: идентификатор подразделения, табельный номер сотрудника, название кафедры. При проектировании системы требуется: • создать иерархию классов системы; • для классов указать стереотипы; • разместить классы по пакетам в Design model, как это описано в методичке (придерживаться принципа: количество связей внутри пакета больше количества связей, проходящих за границы пакета); • связать объекты на диаграммах взаимодействия с классами, а сообщения – с операциями; • каждый класс снабдить описанием, которое должно включать в себя краткое описание (ответственность класса), описание атрибутов в виде таблицы (имя, описание, тип), таблицу с описанием операций (имя, описание, сигнатура); • построить диаграммы классов системы, отображающие связи между классами; Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) для описания поведения экземпляров отдельных классов построить диаграммы состояний; • построить диаграммы деятельности для моделирования сложных операций (с альтернативами, циклами); • разработать (если это требуется вариантом задания) схему базы данных и отобразить ее на диаграмме «сущность – связь». При реализации системы необходимо построить диаграммы компонентов для каждого пакета и для системы в целом. Также следует разработать диаграмму размещения. В зависимости от варианта задания диаграмма размещения должна показывать расположение компонентов в распределенном приложении или связи между встроенным процессором и устройствами. Должна быть произведена проверка корректности модели средствами Sparx Enterprise Architect. • 1.2 Составление глоссария проекта Для описания терминологии предметной области составим глоссарий проекта. Он может быть использован как неформальный словарь данных системы. Глоссарий приведен в таблице 1. Таблица 1 – Глоссарий проекта. Сотрудник Система База данных пользователь системы, который может оформить заявку на предоставление списка вакансий Осуществляет обработку всех заявок, отвечает за их сохранение и корректность база данных, содержащая данные о сотруднике, степени владения языком, кафедры 1.3 Описание дополнительных спецификаций к проекту Функциональные возможности. Система должна обеспечивать многопользовательский режим работы. Она должна иметь возможность работать одновременно с несколькими пользователями. Также система должна находиться в режиме постоянного ожидания действий от пользователя. Также система должна следить за непротиворечивостью данных. Удобство использования Пользовательский интерфейс должен быть Windows 7-10, Mac OSсовместимым. Также если система будет создана для мобильных приложений, интерфейс должен быть Android, IOS – совместим. Надежность Система должна быть в работоспособном состоянии 24 часа в день 7 дней в неделю, время простоя – не более 5 %. Необходимо наличие backup для серверов базы данных. Производительность Система должна поддерживать одновременную работу 10000 сотрудников, работающих с интерфейсом. Безопасность Система не должна позволять сотрудникам изменять данные в базе в ходе заполнения формы, для этого должна существовать специализированная последовательность операций. Также доступ к изменению данных должна иметь только система. Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) 2. ПРОЕКТИРОВАНИЕ СИСТЕМЫ 2.1 Создание модели вариантов использования Созданная модель диаграммы вариантов использования на основе полученного варианта задания, представлена на рисунке 1. Рисунок 1 – Диаграмма вариантов использования Действующие лица: Сотрудник – отправляет заявку на предоставление вакансий; Система – обрабатывает заявку: осуществляет проверку на корректность вводимых данных, отправляет все необходимые данные в базу данных; База данных – хранит в себе информацию о сотрудниках, языках и кафедрах; Выделяются следующий варианты использования: • • • • • • • • • ввод личных данных; ввод языков; выбрать должность; корректировать ввод; присвоить тарифный разряд; проверка расписания; обратиться к базе; внести изменения; степень владения языком. Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) На диаграмме описаны основные требования к системе. Начало действие идет от сотрудника, который взаимодействует с формой для ввода данных. Далее запрос направляется на обработку в систему. Система обращается к базе данных, устанавливается соединение. Далее данные отправляются в базу данных, пользователю возвращается сообщение об успешном добавлении данных в базу. 2.2 Добавление описаний к вариантам использования Вариант использования Ввод личных данных: Краткое описание Данный вариант использования описывает ввод сотрудником личных данных: ФИО, возраст и т.д. Основной поток событий Данный вариант использования начинает выполняться, когда пользователь или оператор хочет начать взаимодействие со системой. 1 Пользователь начинает заполнять форму личными данными Альтернативные потоки Неправильное заполнение полей данных. Если при заполнении формы, сотрудник указал неправильно требуемые данные, то выводится сообщение об ошибке. Система повторно запросит данные, а также сообщит пользователю в каком поле была совершена ошибка. Предусловия Отсутствуют. Постусловия Отсутствуют. Вариант использования Ввод языков: Краткое описание Данный вариант использования описывает процесс ввода иностранных языков, которые знает сотрудник Основной поток событий Данный вариант использования начинает выполняться, когда пользователь хочет ввести дополнительные данные о владении иностранными языками. 1 Система уточняет, какой именно язык пользователь знает 2 Проверяется корректность ввода 3 Включает в себя ввод степени владения данным языком Альтернативные потоки Отсутствие информации о введённом языке в базе Если при вводе системе не удастся найти соответствующий язык, то будет выведено соответствующее сообщение. Сотруднику будет предложено проверить введенные данные на наличие ошибок. А также будет предложено оформление запроса для изменения (добавления) данных. Предусловия Отсутствуют. Постусловия Отсутствуют. Вариант использования Выбрать Должность: Краткое описание Данный вариант использования описывает процесс выбора должности сотрудником Основной поток событий Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) Данный вариант использования начинает выполняться, когда сотрудник выбирает опцию «выбрать вакансию из списка предложенных». 1 Система формирует список вакансий исходя из данных, введённых сотрудником. 2 Сформированный запрос отправляется систему на проверку. Предусловия Отсутствуют. Постусловия Отсутствуют. Вариант использования Присвоить Тарифный разряд: Краткое описание Данный вариант использования описывает присвоение тарифного разряда. Основной поток событий Данный вариант использования начинает выполняться, когда система получает необходимую информацию от пользователя 1 Система получает информацию 2 Система присваивает сотруднику соответствующий тарифный разряд Альтернативные потоки Ошибка в системе Если при присвоении тарифного разряда произошла ошибка, выводится на экран соответствующее сообщение о невозможности его присвоения в данную минуту Предусловия Загрузка системы. Постусловия Сохранение изменений. Вариант использования Проверка Расписания: Краткое описание Данный вариант использования описывает проверку штатного расписания. Основной поток событий Данный вариант использования начинает выполняться, когда сотрудник отправил личную информацию. 1 Система осуществляет проверку расписания 2 В соответствии с проверкой расписания продолжает обработку данных Альтернативные потоки Ошибка в системе. Выводится сообщение о невозможности проверки расписания из-за перегруженности сервера или его отказа, сотруднику предлагается подождать некоторое время для возобновления работы Неправильное заполнение полей данных. Если при заполнении формы, сотрудник указал неправильно требуемые данные, то выводится сообщение об ошибке. Система повторно запросит данные, а также на экран выведется исходная форма, в которой будут подсвечены поля, в которых пользователь допустил ошибку, чтобы не вводить все данные повторно. Предусловия Загрузка системы. Постусловия Сохранение изменений Вариант использования Обратиться к базе: Краткое описание Данный вариант использования описывает установление соединения между системой и базой данных Основной поток событий Данный вариант использования начинает выполняться, когда сотрудник отправил личные данные системе. 1 Система пытается установить с соответствующей базой данных Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) Альтернативные потоки Системе не удалось установить соединение с базой данных. Сотруднику предлагается подождать некоторое время для исправления ошибок. Неправильное заполнение полей данных. Если при заполнении формы, сотрудник указал неправильно требуемые данные, то выводится сообщение об ошибке. Система повторно запросит данные, а также сообщит сотруднику в каком поле была совершена ошибка. Предусловия Загрузка системы. Постусловия Изменения сохранятся в базе данных. Вариант использования Внести Изменения: Краткое описание Данный вариант использования описывает изменения, которые вносятся в соответствующую базу данных Основной поток событий Данный вариант использования начинает выполняться, когда система пытается обратиться для получения информации к базе данных 1 Система отправляет сформированный запрос в базу данных. 2 База данных предоставляет запрашиваемую информацию. Альтернативные потоки Отсутствие запрашиваемой информации в базе данных Если при поиске данных они не будет обнаружены, то будет выведено соответствующее сообщение, предложение проверить введенные данные на корректность. Предусловия Загрузка системы. Постусловия Отсутствуют. 2.3 Создание диаграммы последовательности Для описания процесса обработки запроса была создана диаграмма последовательности, представленная на рисунке 2. Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) Рисунок 2 – Диаграмма последовательности «Обработка запроса» Пользователь обращается к форме для ввода данных. В свою очередь форма отображается на экране и предоставляет все возможные опции для ввода информации. Далее пользователь вводит необходимую информацию в форму, которая в свою очередь отображается на экране. Затем форма отправляет запрос в систему, где этот запрос обрабатывается. Далее устанавливается соединение с базой данных. В базу отправляется необходимая информация, где она и сохраняется. Потом возвращается результат сохранения сотрудника в базе: успешно или нет, это сообщение выводится на экран. 2.4 Создание кооперативной диаграммы Для лучшего представления процесса взаимодействия объектов в процессе обработки запроса используется кооперативная диаграмма. По своей сути кооперативная диаграмма не отличается от диаграммы последовательности, однако является более наглядной. Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) Рисунок 3 – Кооперативная диаграмма «Обработка запроса» Sparx позволяет автоматически генерировать кооперативную диаграмму на основе диаграммы последовательности. Здесь легко определить связи взаимодействия в системе. Главное взаимодействие происходит с базой данных. все операции в конечном итоге сводятся к запросу в базу данных. Пользователь через специальную форму отправляет запрос системе, где осуществляется анализ и дальнейшее обращение к базе данных. 2.5 Создание диаграммы классов Все объекты, участвующие в системе, продемонстрируем с помощью диаграммы классов. Для начала распределим объекты по их типу по папкам. На рисунке 4 продемонстрировано распределение классов по папкам, в соответствии с их стереотипом. Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) Рисунок 4 – Распределение классов по пакетам Разделение было сделано на 3 основных типа: Boundaries, Control и Entities. Boundaries – классы, граничащие с внешней средой, используемые для взаимодействия в основном с пользователями. Entities – элементы взаимодействия в системе, которые обладают уникальными данными и возможностями. Control – элементы, используемые для управления взаимодействием между, преимущественно, сущностями. Главная диаграмма классов создана для демонстрации взаимодействия между пакетами классов системы и представлена на рисунке 5. Активное взаимодействие происходит между классами Control и Entities. Классы Control корректируют взаимодействие между Entities. Рисунок 5 – Диаграмма пакетов «Главная диаграмма классов» На рисунке 6 находиться основная диаграмма классов. На ней присутствуют так же атрибуты и методы классов, для более подробной информации. Система получилась довольно компактной, поэтому вся диаграмма удобно читается и не является громоздкой. На диаграмму добавлены классы: Сотрудник, Система, База данных, Форма для ввода данных, Экран. Класс Сотрудник содержит в себе 4 поля: ФИО, доп. языки, уровень языка и дата рождения, впоследствии данному классу можно добавить геттеры и сеттеры. Класс Форма для ввода данных содержит в себе 2 метода: InputData, который принимает на вход данные о пользователе и OpenForm, который служит для открытия формы. Класс Система содержит в себе 2 публичных метода SendInfo, который служит для отправки информации о сотруднике и ReturnSucceed, который служит для сообщения об успешном добавлении сотрудника в базу. Класс Экран содержит 3 метода, служащие для отображения информации и сообщения об успешном выполнении операции. Класс База данных служит для хранения сотрудников, отправки информации, имеется метод для установки соединения. Непосредственно главным координирующим классом является «Система». Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) Рисунок 6 – Диаграмма классов «ОбработкаЗапроса» 2.6 Создание диаграммы состояний Создадим диаграмму состояний для демонстрации форм, которые принимает объект класса «Сотрудник» в процессе выполнения системы. Диаграмма состояний, представленная на рисунке 7, показывает основные состояния объекта «Сотрудник». В системе объект пребывает в состоянии «Создан», пока не будет удален. Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) Рисунок 7 – Диаграмма состояний «СотрудникState» В классическом сюжете объект сразу инициализируется и создается после заполнения формы для ввода данных. В этом состоянии объект пребывает все свое время существования. После создания объекта он может попасть в 2 состояния: либо в состояния изменения, либо в состояние перед сохранением в бд, в первом случае в объект вносятся изменения, во втором осуществляется проверка ошибок. Если проверка не пройдена, объект переходит в состояние изменения, после которого возможен переход в состояние удаление и завершение его существования. После проверки валидности объект переходит в состояние готовности перед отправкой в базу данных, после которого объект оказывается в базе и его жизненный цикл продолжается уже там. 2.7 Создание диаграммы активности На данной диаграмме будет показан процесс запроса на получение вакансии. Диаграмма представлена на рисунке 8. Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) Рисунок 8 – Диаграмма активности «СотрудникRequest» Данная диаграмма создана для демонстрации выполнения запроса для предоставления вакансии. Сначала выполняется ввод информации сотрудником, далее осуществляется проверка валидности данных, если данные валидны, идёт переход к следующему шагу, иначе ввод повторяется. Далее сотрудник проверяется на “пенсионный возраст”, если лицо пенсионного возраста, то предоставление вакансий невозможно. Далее проверятся сташ и степень образование, и в зависимости от этих критериев предоставляется или не предоставляется возможность занять те или иные вакансии. После всех проверок данные отправляются в базе, если отправка прошла успешно, выводится сообщение об удачном исходе и происходит присвоение табельного номера сотруднику, иначе сообщение об ошибке. Запрос завершает сво1 выполнение. 2.8 Создание диаграммы базы данных В нашей системе необходим постоянный контроль за достоверностью, актуальностью, наполненностью данных. Система работает с огромным количеством сотрудников. Это все требует место хранения. Именно поэтому мы создали базу данных для контроля данными. По условию сказано, что при наличии в системе базы данных, нам нужно построить ее модель на диаграмме. На рисунке 9 представлена модель построенной базы данных. Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) Рисунок 9 – Диаграмма БД Диаграммы БД были сгенерированы с помощью модулю Data Control в Sparx. Стоит отметь, что подобная функция является весьма удобным инструментом при работе с большими система. Также система позволяет генерировать SQL код. Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) 3. РЕАЛИЗАЦИЯ СИСТЕМЫ 3.1 Создание диаграммы компонентов На рисунке 11 представлена построенная диаграмма компонентов. Диаграмма является начальным этапам реализации любой системы. Рисунок 11 – Диаграмма компонентов «Система» Диаграмма показывает основные спецификации и их взаимодействие. Это необходимо для того, чтобы программисты знали какие элементы системы с чем взаимодействуют. Это позволяет правильно организовать написание кода, тем самым увеличивая продуктивность и уменьшая шанс возникновения ошибки. Со всеми спецификациями связаны их тела. В их телах описаны ключевые моменты создания, а также их код написания. Благодаря связям, видно с каких тел следует начинать. 3.2 Создание диаграммы размещения Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) Для отображения устройств, на которых будет размещена система, представлена диаграмма на рисунке 12. Рисунок 12 – Диаграмма размещения «Main» Имеется три основных процессора. Система обрабатывает поступающие данные и осуществляет связь между Базой Данных, пк и экраном. База Данных используется для функционирования базы данных системы. На нем будут сохраняться все данные о сотрудниках и их кафедрах. ПК используется для взаимодействия с интерфейсами. Для демонстрации отображения запрашиваемых пользователем данных, которые предоставляет система, был выбран экран. На него выводится вся информация, сообщения об ошибках и происходит взаимодействие со системой. 3.3 Генерация кода C++ Воспользуемся возможностью Sparx для генерации макетов кода для созданных в диаграммах классов. На основе полученных данных были созданы классы, в их спецификациях мы можем указать принадлежность к C++ коду. Это позволяет нам облегчить работу программистов, направляя их работу в нужном направлении. Отобразим на рисунке 13 для примера сгенерированный пакет Entities. Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) Рисунок 13 – Сгенерированный пакет Entities Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) ЗАКЛЮЧЕНИЕ На основе полученных данных из задания была спроектирована система. Для этого были использованы программа Sparx Enterprise Architect и язык объектно-ориентированного проектирования UML. В процессе работы были созданы основные диаграммы языка. Было создано описание к диаграммам. В начале работы был проведен анализ поставленной задачи. На основе полученных рекомендаций и условия к заданию был произведен общий расчёт системы. В соответствии с ним нужно было сделать несколько диаграмм взаимодействия, диаграмму компонентов, размещения, активности, состояний, вариантов использования и классов. Первой была построена диаграмма вариантов использования. На ней были показаны основные требования к системе. Эта диаграмма является первым шагом к проектированию системы. Она изображает основных потребителей, возможные события и обобщает систему в целом. Дальше была изображена диаграмма последовательности для обработки запроса. Она позволяет наглядно обозначить основные пути обработки заявки, а также изучить последовательность всех действий на пути к этому. Затем была создана диаграмма классов. Общая для обозрения пакетов и их взаимодействия. Главная для проектировки самих классов и их ассоциаций. Там были описаны все классы системы. Диаграмма состояний показала основные состояний класса Сотрудник, так как вокруг него строится вся База Данных, а, следовательно, на ней строится и вся работа системы. Этот класс является важнейшей информационной структурой системы, поэтому он заслуживает отдельного внимания. Для построения кода используется диаграмма компонентов. Спецификации этой диаграммы облегчают обозрение общей картины, позволяя дискретно разбивать систему на небольшие компоненты. Ориентируясь по взаимодействию спецификаций можно начинать разработку кода частями или отдавать компоненты отдельным группами программистов, организуя их сообщение. Информация об организации устройств системы была размещена на диаграмме размещения. Данную диаграмму можно дополнить необходимыми устройствами. Были объединены все возможные устройства в одно гипотетически общее, что визуально упростило диаграмму, сделало более лаконичной и понятной. В конце была использована функция генерации C++ кода. С помощью нее были сгенерированы макеты классов нашей системы. В результате была построена система с помощью UML языка. В ней были использованы диаграммы различного вида. Это позволило детально спроектировать программу, начиная от начальных требований диаграммы вариантов использования и заканчивая генерацией кода. Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ [1] СТП 01-2017. Стандарт предприятия. Дипломные проекты (работы). Общие требования. - Минск: БГУИР, 2017. - 169 с. [2] R. Pooley, P. Wilcox, Applying UML: Advanced Applications, 2003. – 224 с. [3] К. Ларман, Применение UML и шаблонов проектирования, 2002 – 624 c. [4] А. Якобсон, Г. Буч, Дж. Рамбо, Унифицированный процесс разработки программного обеспечения, 2002 – 496 c. Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) ПРИЛОЖЕНИЕ A (обязательное) Листинг кода Класс Форма Для Ввода данных Форма Для Ввода Данных.h #if !defined(EA_EF0F035C_2398_4396_99CE_C4BD13B77E6B__INCLUDED_) #define EA_EF0F035C_2398_4396_99CE_C4BD13B77E6B__INCLUDED_ #include "Экран.h" #include "Система.h" class Форма для ввода данных { public: форма для ввода данных(); virtual ~форма для ввода данных(); Экран *m_Экран; Система *m_Система; void InputData(String фио, String[] доп языки, String[] уровень языка, Date Дата рождения); void OpenForm(); }; #endif // !defined(EA_EF0F035C_2398_4396_99CE_C4BD13B77E6B__INCLUDED_)*/ Форма Для Ввода Данных.cpp #include "Форма для ввода данных.h" Форма для ввода данных::Форма для ввода данных(){ } Форма для ввода данных::~Форма для ввода данных(){ } void Форма для ввода данных::InputData(String Фио, String[] Доп языки, String[] Уровень языка, Date Дата рождения){ } void Форма для ввода данных::OpenForm(){ } Класс Экран Экран.h #if !defined(EA_F39C4769_B1BA_46f7_865B_28F60F0189C4__INCLUDED_) #define EA_F39C4769_B1BA_46f7_865B_28F60F0189C4__INCLUDED_ class Экран { public: Экран(); Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) virtual ~Экран(); void Show(Сотрудник сотрудник); void ShowForm(); void ShowResultOfTheOperation(boolean succeed); }; #endif !defined(EA_F39C4769_B1BA_46f7_865B_28F60F0189C4__INCLUDED_) Экран.cpp #include "Экран.h" Экран::Экран(){ } Экран::~Экран(){ } void Экран::Show(Сотрудник сотрудник){ } void Экран::ShowForm(){ } void Экран::ShowResultOfTheOperation(boolean succeed){ } Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) ВЕДОМОСТЬ КУРСОВОГО ПРОЕКТА Обозначение Наименование Дополнительные сведения Текстовые документы БГУИР КП 1-53 01 02 06 023 ПЗ Пояснительная записка 34с. Графические документы ГУИР.000000.001 ПД Диаграмма вариантов использования Формат А3 ГУИР.000000.002 ПД Диаграмма классов Формат А3 ГУИР.000000.003 ПД Диаграмма активности Формат А3 БГУИР КП 1-53 01 02 06 023 Д1 Изм. Л Разраб. Провер. Т.контр. Н.контр. № докум. Полякевич Боброва Подп. Дата Лит Система для ввода информации при приёме Т сотрудника на работу Ведомость курсового проекта Утв. Реценз. Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru) Лист 34 Листо в 33 Кафедра ИТАС гр. 620603 Document shared on www.docsity.com Downloaded by: andrey554 (dragon5554@mail.ru)