Министерство науки и высшего образования Российской Федерации ФГАОУ ВО «Северо – Восточный федеральный университет им. М.К.Аммосова Колледж инфраструктурных технологий Кафедра эксплуатации и обслуживания информационных систем ОТЧЕТ УЧЕБНОЙ ПРАКТИКИ по ПМ.01. РАЗРАБОТКА ПРОГРАММНЫХ МОДУЛЕЙ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ КОМПЬЮТЕРНЫХ СИСТЕМ МДК.01.02. Поддержка и тестирование программных моделей МДК 01.03. Разработка мобильных приложений ПМ.02. Осуществление интеграции программных модулей МДК.02.01. Технология разработки программного обеспечения УГСН: 09.00.00 Информатика и вычислительная техника Специальность: 09.02.07 Информационные системы и программирование Квалификация выпускника: программист Выполнил студент гр. СПО-ИСиП – 19-2 КИТ СВФУ Алексеева Мичийэ Никандровна Проверили: Алексеева А.З: Оценка Дата сдачи: 2 Якутск -2022 3 ОГЛАВЛЕНИЕ ВВЕДЕНИЕ ...................................................................................................... 5 1. КРАТКАЯ ХАРАКТЕРИСТИКА БАЗЫ ПРАКТИКИ ................ 10 1.1...................... КРАТКАЯ ХАРАКТЕРИСТИКА МАТЕРИАЛЬНО – ТЕХНИЧЕСКОГО ........................................................................... 12 ОБОРУДОВАНИЯ КАБИНЕТА .......................................................... 12 1.2.КРАТКАЯ ХАРАКТЕРИСТИКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ КАБИНЕТА ........................................................ 13 1.3. ТЕХНИКА БЕЗОПАСНОСТИ ..................................................... 15 2. ОПИСАНИЕ ТЕХНОЛОГИИ ВЫПОЛНЕННЫХ РАБОТ.................... 17 2.1. ПМ 01. Разработка модулей программного обеспечения для компьютерных систем ........... Ошибка! Закладка не определена. 2.2. ПМ.02 Осуществление интеграции программных модулей ..... 17 ЗАКЛЮЧЕНИЕ .............................................................................................. 43 СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ...................................... 46 4 ВВЕДЕНИЕ Цели учебной практики по УГСН 09.00.00 Информатика и вычислительная техника связи по специальности 09.02.07 Информационные системы и программирование: освоение всех видов профессиональной деятельности по данной специальности, формирование общих и профессиональных компетенций, а также приобретение необходимых умений и опыта практической работы по специальности. Учебная практика по специальности направлена на формирование умений, приобретение первоначального практического опыта и реализуется в рамках профессиональных модулей ППССЗ СПО по основным видам профессиональной деятельности для последующего освоения общих и профессиональных компетенций по специальности 09.02.07 Информационные системы и программирование. Задачи учебной практики закрепление, углубление и расширение теоретических знаний, умений и навыков, полученных студентами в процессе теоретического обучения; овладение профессионально – практическими умениями, производственными навыками и передовыми методами труда; овладение нормами профессии в мотивационной сфере: осознание мотивов и духовных ценностей в избранной профессии; овладение основами профессии в операционной сфере: ознакомление и усвоение методологии решения профессиональных задач (проблем); изучение разных сторон профессиональной деятельности: социальной, правовой, гигиенической, психологической, психофизической, технической, технологической, экономической. В ходе освоения программы учебной практики должны по основным видам профессиональной деятельности: Разработка модулей программного обеспечения для компьютерных систем уметь: • выполнять отладку и тестирование программы на уровне модуля; • осуществлять разработку кода программного модуля на современных языках программирования; • оформлять документацию на программные средства. иметь практический опыт в: • проведении тестирования программного модуля по определенному сценарию; • использовании инструментальных средств на этапе отладки программного продукта; • разработке мобильных приложений. ПМ02. Осуществление интеграции программных модулей Иметь практический опыт интеграции модулей в программное обеспечение отладке программных модулей. разрабатывать и оформлять требования к программным модулям по 5 предложенной документации. разрабатывать тестовые наборы (пакеты) для программного модуля. разрабатывать тестовые сценарии программного средства. инспектировать разработанные программные модули на предмет соответствия стандартам кодирования. интегрировать модули в программное обеспечение. отлаживать программные модули. уметь использовать выбранную систему контроля версий; использовать методы для получения кода с заданной функциональностью и степенью качества. анализировать проектную и техническую документацию. использовать специализированные графические средства построения и анализа архитектуры программных продуктов. организовывать заданную интеграцию модулей в программные средства на базе имеющейся архитектуры и автоматизации бизнес-процессов. определять источники и приемники данных. проводить сравнительный анализ. выполнять отладку, используя методы и инструменты условной компиляции (классы debug и trace). оценивать размер минимального набора тестов. разрабатывать тестовые пакеты и тестовые сценарии. выявлять ошибки в системных компонентах на основе спецификаций. выполнять тестирование интеграции. создавать классы- исключения на основе базовых классов. выполнять ручное и автоматизированное тестирование программного модуля. использовать приемы работы в системах контроля версий. использовать инструментальные средства отладки программных продуктов. выполнять отладку, используя методы и инструменты условной компиляции. приемы работы в системах контроля версий. распознавать задачу и/или проблему в профессиональном и/или социальном контексте; анализировать задачу и/или проблему и выделять её составные части; определять этапы решения задачи; выявлять и эффективно искать информацию, необходимую для решения задачи и/или проблемы; составить план действия; определить необходимые ресурсы; владеть актуальными методами работы в профессиональной и смежных сферах; реализовать составленный план; 6 оценивать результат и последствия своих действий (самостоятельно или с помощью наставника); определять задачи для поиска информации; определять необходимые источники информации; планировать процесс поиска; структурировать получаемую информацию; выделять наиболее значимое в перечне информации; оценивать практическую значимость результатов поиска; оформлять результаты поиска; определять актуальность нормативно-правовой документации в профессиональной деятельности; применять современную научную профессиональную терминологию; определять и выстраивать траектории профессионального развития и самообразования; организовывать работу коллектива и команды; взаимодействовать с коллегами, руководством, клиентами в ходе профессиональной деятельности. В ходе прохождения учебной практики должны быть выполнены практические работы для формирования общих компетенций, включающих в себя способность: ОК 01. Выбирать способы решения задач профессиональной деятельности, применительно к различным контекстам. ОК 02. Осуществлять поиск, анализ и интерпретацию информации, необходимой для выполнения задач профессиональной деятельности. ОК 03. Планировать и реализовывать собственное профессиональное и личностное развитие.. ОК 04. Работать в коллективе и команде, эффективно взаимодействовать с коллегами, руководством, клиентами. И профессиональные компетенции, соответствующие основным видам профессиональной деятельности: ПМ 01. Разработка модулей программного обеспечения для компьютерных систем МДК.01.02. Поддержка и тестирование программных моделей ПК 1.3. Выполнять отладку программных модулей с использованием специализированных программных средств. ПК 1.4. Выполнять тестирование программных модулей. ПК 1.5. Осуществлять оптимизацию программного кода модуля. МДК 01.03. Разработка мобильных приложений ПК 1.2. Осуществлять разработку кода программного продукта на основе готовых спецификаций на уровне модуля. ПК 1.6. Разрабатывать компоненты проектной и технической документации с использованием графических языков спецификаций. ПМ.02 Осуществление интеграции программных модулей 7 ПК 2.1. Разрабатывать требования к программным модулям на основе анализа проектной и технической документации на предмет взаимодействия компонент. ПК 2.4. Осуществлять разработку тестовых наборов и тестовых сценариев для программного обеспечения. ПК 2.5. Производить инспектирование компонент программного обеспечения на предмет соответствия стандартам кодирования. Структура и трудоемкость учебной практики № п/п Разделы (этапы) практики Недели Общая трудоемкость Кредиты Часы 1. Подготовительный этап, включающий установочную конференцию (инструктаж по технике безопасности) 2. ПМ 01. Разработка модулей программного обеспечения для компьютерных систем 2.1 МДК.01.02. Поддержка и тестирование программных моделей Разработка алгоритма решения поставленной задачи. Создавать программу по разработанному алгоритму как отдельный модуль. Разработка кода программного продукта на основе спецификации на уровне модуля. Проведение тестирования программного модуля по определенному сценарию. Использование инструментальных средств на этапе тестирования программного продукта. МДК 01.03. Разработка мобильных приложений Разработка интерфейса мобильного приложения и определение компонентов для приложения. Программирование с использованием нескольких активностей. Разработка мобильного приложения 3 1 ПМ.02 Осуществление интеграции программных модулей 8 Формы текущего контроля Участие в конференц ии; проверка дневника практики; 1 36 18 18 36 Проверка и анализ отчетных материалов 3.1. Работа в системе контроля версий. Разработка и интеграция модулей проекта ВСЕГО: 2 72 Практику проходили в лабораториях кафедры эксплуатации и обслуживания информационных технологий Колледжа инфраструктурных технологий. Выполняли следующие виды деятельности на учебной практике: прослушивание установочных лекций; участие в практических занятиях; консультации; изучение и анализ новых программных средств; разработка программных средств; оформление дневника и отчета практики; Использовались компьютерные технологии, технология сотрудничества, игровые технологии, модульная технология, научно – исследовательские технологии и другие. 9 1. КРАТКАЯ ХАРАКТЕРИСТИКА БАЗЫ ПРАКТИКИ Мы проходили учебную практику с 07.03.2022г. по 20.03.2022г. на базе учебных лабораторий кафедры эксплуатации и обслуживания информационных систем Колледжа инфраструктурных технологий ФГАОУ ВО СВФУ им.М.К.Аммосова: Лаборатория «Программного обеспечения и сопровождения компьютерных систем» Северо-Восточный федеральный университет создан в соответствии с Указом Президента Российский Федерации от 7 мая 2008 года №716 «О федеральных университетах», Указом Президента Российской Федерации от 21 октября 2009 года № 1172 «О создании федеральных университетов в СевероЗападном, Приволжском, Уральском и Дальневосточном федеральных округах» на базе Якутского государственного университета имени М.К. Аммосова с присоединением к нему ГОУ ВПО «Якутский государственный инженернотехнический институт», ГОУ ВПО «Саха государственная педагогическая академия», ФГНУ «Институт региональной экономики Севера», ФГНУ «Институт прикладной экологии Севера», ФГНУ «Институт математики», ФГНУ «Институт здоровья», подведомственных Федеральному агентству по образованию, учреждений образования и науки другой ведомственной принадлежности. 2 апреля 2010 года распоряжением Правительства Российской Федерации за № 499-р создано Федеральное государственное автономное образовательное учреждение высшего профессионального образования «Северо-Восточный федеральный университет имени М.К. Аммосова». 9 апреля 2010 года распоряжением Правительства РФ за № 512 ректором СВФУ назначена Михайлова Евгения Исаевна. Университет назван в честь Максима Кировича Аммосова, видного государственного деятеля, выдающегося сына якутского народа, одного из основателей государственности Якутии и Кыргызстана. 9 июня 2010 года Северо-Восточный федеральный университет имени М.К. Аммосова получил официальный статус. Процедура юридической регистрации завершилась внесением Северо-Восточного федерального университета в единый государственный реестр юридических лиц. Федеральное государственное автономное образовательное учреждение высшего профессионального образования «Северо-Восточный федеральный университет имени М.К. Аммосова» призван обеспечить формирование кадрового и научного потенциала для эффективного решения вопросов комплексного социально-экономического развития всего Северо-Востока России. Стратегическая цель – подготовка высококвалифицированных кадров, обучение и воспитание молодых людей с высокими духовными и нравственными принципами и отличным физическим здоровьем, способных взять на себя ответственность и умеющих отстаивать экономические, политические интересы и культурные ценности своей страны. В конце июля 2010 года Северо-Восточный федеральный университет 10 имени М.К. Аммосова признан лауреатом Межрегионального конкурса «Лучшие вузы Дальневосточного федерального округа – 2010» и включен в национальный реестр «Знак качества». История колледжа начинается с 1968 года, с открытия в г.Якутске профессионально-технического училища №14, готовящего рабочие кадры для строительных структур республики. В 1992 г. училище реорганизовано в Якутский технический колледж строительного профиля, реализующий образовательные программы начального и среднего профессионального образования. В 2000 г. Указом Президента РС (Я) М.Е. Николаева на базе колледжа создано высшее образовательное учреждение с многоуровневой подготовкой специалистов начального, среднего и высшего профессионального образования «Якутский инженерно- технический институт». На основании приказа Министерства образования и науки Российской Федерации от 4 февраля 2011 г. №157 путем присоединения ГОУ ВПО «Якутский государственный инженерно-технический институт» к ФГАОУ ВПО «Северо-Восточный федеральный университет им. М.К. Аммосова» образован Технологический институт с сохранением сформированных учебных подразделений. Целью деятельности Колледжа инфраструктурных технологий является качественная подготовка практико-ориентированных, профессионально- грамотных, социально-мобильных технических кадров в свете требований современных федеральных образовательных стандартов среднего образования, реализации Программы развития Северо-Восточного федерального университета им. М.К. Аммосова. В колледже ведется подготовка по следующим специальностям среднего профессионального образования: • 08.02.01 Строительство и эксплуатация зданий и сооружений • 09.02.07 Информационные системы и программирование • 10.02.05 Обеспечение информационной безопасности автоматизированных систем • 11.02.15 Инфокоммуникационные сети и системы связи • 09.02.06 Сетевое и системное администрирование 11 КРАТКАЯ ХАРАКТЕРИСТИКА МАТЕРИАЛЬНО – ТЕХНИЧЕСКОГО ОБОРУДОВАНИЯ КАБИНЕТА Для прохождения учебной практики применяли следующее материальнотехническое обеспечение, соответствующее санитарным и противопожарным нормам: 1) лаборатории кафедры ЭОИС; 2) рабочие места, доска, интерактивная доска, ПК, ноутбук, проектор 3) аудиовизуальные, технические и компьютерные средства обучения: персональные компьютеры; локальное сетевое оборудование; выход в сеть Интернет; мультимедийный проектор и экран, интерактивные доски, сканер, принтер, оборудование для записи и воспроизведения аудио и видео информации; 4) электронные издания образовательного назначения, реализованные на CD (DVD) - ROM: учебные (в т.ч. мультимедийные и гипертекстовые учебники, тесты и др.); справочные издания (электронные энциклопедии и др.); издания общекультурного назначения; цифровые образовательные ресурсы в сети Интернет. ауд №10 Лаборатория программного обеспечения и сопровождения компьютерных систем Перечень основного оборудования, учебно-наглядных пособий: • Проектор и экран; • Маркерная доска; • Ноутбук Lenovo (1шт); • Монитор Philips 273V7QSB (12шт); • Настольный персональный компьютер ESPRIMO D538 (12шт); • Стол ученический (3шт); • Стол преподавателя (1шт); • Стол компьютерный (7 шт); • Стул деревянный (20шт); • Доска ученическая (1 шт). Программное обеспечение: • Microsoft Office • 7-zip • Windows • Антивирус Dr.Web • Zoom • Браузеры Сhrome, Opera • Microsoft Visual Studio • Dev C++ • PyCharm • SQL • MS Access • Wireshark 1. Доступ к сети Интернет 1.1. 12 Предоставление выделенного доступа к сети Интернет и объединение филиалов по технологии IP/VPN (основной канал) (договор № 1541-12/20 от 23.12.2020 г. на предоставление выделенного доступа к сети Интернет и объединение филиалов по технологии IP/VPN (основной канал) с ПАО "Ростелеком". Срок действия документа: с "01" января 2021 г. по "31" декабря 2021 г.). 2. Антивирусная программа Dr.Web Desktop Security Suite Продление прав на использование программных продуктов из состава Dr.Web Enterprise Security Suite: Dr.Web Desktop Security Suite (Комплексная защита) + Центр управления, на 12 месяцев, 1490 ПК (LBW-BC-12M1490-B1), Dr.Web Server Security Suite (Антивирус) + Центр Управления, на 12 месяцев, 10 серверов (LBSBC-12M-10-B1) + Медиапакет Dr.Web сертифицированный ФСТЭК России (договор № 350441-РАД от 07.07.2020г. с ИП «Лицензиар» (“Сублицензиар”). Срок действия документа: 1 год. 3. Программа Zoom Годовая подписка на ZOOM Бизнес на 20 организаторов (лицензионный договор № 80 от 31.08.20г. с ООО «Айтек Инфо». Срок действия документа: с "31" августа 2020 г. по "30" августа 2021 г.). Годовая подписка на сервис ZOOM, тариф Образование, на 47 организаторов (лицензионный договор № 85 от 31.08.20г. с ООО «Айтек Инфо». Срок действия документа: с "31" августа 2020 г. по "30" августа 2021 г.). 4. Microsoft (Windows, Office), пакет локальных офисных программ для работы с документами (Лицензионный договор на передачу прав №370728-ОТС (Лицензионное соглашение) от 26.03.2020г. с АО «Софт_лайн Трейд» на право использования программ для ЭВМ: Microsoft (Windows, Office). Срок действия документа: 1 год.). КРАТКАЯ ХАРАКТЕРИСТИКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ КАБИНЕТА 1. Microsoft Office 364 – это программный продукт от компании Microsoft, объединяющий набор веб-сервисов, который распространяется на основе подписки по схеме «программное обеспечение как услуга» 2. 7-zip – архиватор для Windows к достоинствам которого можно смело отнести комфортную скорость работу, поддержку всех современных форматов и высокую степень сжатия. 3. Windows – это семейство операционных систем реального времени, которое было специально разработано для применения в различных встраиваемых системах. Ядро системы имеет общее с семейством ОС Windows CE и поддерживает процессоры ARM, MIPS, SuperH и x86. 4. Антивирус Dr.Web – семейство антивирусных программ, которое предназначены для защиты персональных компьютеров и установленного на них программного обеспечения от различного рода вирусов. 5. Zoom – это программа, которая организует онлайн-встречи пользователей, видеоконференции, групповые чаты, аудиозвонки. 6. Браузер Сhrome – это поисковая система компании Google на основе 1.2. 13 свободного браузера Chromium и движка Blink 7. Microsoft Visual Studio 2019 – интегрированная среда разработки программного обеспечения 8. MS SQL Server – это высокопроизводительная система управления базами данных для работы как в локальной, так и в облачной среде. 14 1.3. ТЕХНИКА БЕЗОПАСНОСТИ Общее положения: • К работе в компьютерном классе допускаются лица, ознакомленные с данной инструкцией по технике безопасности и правилам поведения. • Работа учащихся в компьютерном классе разрешается только в присутствии преподавателя. • Во время занятий посторонние лица могут находиться в классе только с разрешения преподавателя. • Во время перемен между уроками проводится обязательное проветривание компьютерного кабинета с обязательным выходом учащихся из класса. • Помните, что каждый учащийся в ответе за состояние своего рабочего места и сохранность размещенного на нем оборудования. Перед началом работы необходимо: • Убедиться в отсутствии видимых повреждений на рабочем месте; • Разместить на столе тетради, учебные пособия так, чтобы они не мешали работе на компьютере; • Принять правильною рабочую позу. • Посмотреть на индикатор монитора и системного блока и определить, включён или выключен компьютер. Переместите мышь, если компьютер находится в энергосберегающем состоянии или включить монитор, если он был выключен. При работе в компьютерном классе категорически запрещается: • Находиться в классе в верхней одежде; • Класть одежду и сумки на столы; • Находиться в классе с напитками и едой; • Располагаться сбоку или сзади от включенного монитора; • Присоединять или отсоединять кабели, трогать разъемы, провода и розетки; • Передвигать компьютеры и мониторы; • Открывать системный блок; • Включать и выключать компьютеры самостоятельно. • Пытаться самостоятельно устранять неисправности в работе аппаратуры; • Перекрывать вентиляционные отверстия на системном блоке и мониторе; Ударять по клавиатуре, нажимать бесцельно на клавиши; • Класть книги, тетради и другие вещи на клавиатуру, монитор и системный блок; • Удалять и перемещать чужие файлы; • приносить и запускать компьютерные игры. Находясь в компьютерном классе, студенты обязаны: • Соблюдать тишину и порядок; • Выполнять требования преподавателя и лаборанта; • Находясь в сети работать только под своим именем и паролем; • Соблюдать режим работы (согласно п. 9.4.2. Санитарных правил и норм); 15 • При появлении рези в глазах, резком ухудшении видимости, невозможности сфокусировать взгляд или навести его на резкость, появления боли в пальцах и кистях рук, усиления сердцебиения немедленно покинуть рабочее место, сообщить о происшедшем преподавателю и обратиться к врачу; • После окончания работы завершить все активные программы и корректно выключить компьютер; • Оставить рабочее место чистым. Работая за компьютером, необходимо соблюдать правила: • Расстояние от экрана до глаз – 70 – 80 см (расстояние вытянутой руки); • Вертикально прямая спина; • Плечи опущены и расслаблены; • Ноги на полу и не скрещены; • Локти, запястья и кисти рук на одном уровне; • Локтевые, тазобедренные, коленные, голеностопные суставы под прямым углом Требования безопасности в аварийных ситуациях: • При появлении программных ошибок или сбоях оборудования учащийся должен немедленно обратиться к преподавателю. • При появлении запаха гари, необычного звука немедленно прекратить работу, и сообщить преподавателю. 16 2. ОПИСАНИЕ ТЕХНОЛОГИИ ВЫПОЛНЕННЫХ РАБОТ 2.1. ПМ.02 Осуществление интеграции программных модулей МДК.02.01. Технология разработки программного обеспечения По данной МДК выполнены следующие виды работ: работа в системе контроля версий. разработка и интеграция модулей проекта Разработка базы данных «Яхтенная верфь полного цикла «World yachts»» 1. Моделирование прецедентов На этом этапе установили границы системы; роли, взаимодействующие с системой (актеры); варианты использования системы (прецеденты) и отношения между ролями и прецедентами. Диаграмма прецендентов Яхтенная верфь полного цикла «World yachts» Неверный пароль Пароль верный Вход в систему (авторизация) Выбор аксессуаров Регистрация Просмотр каталога Клиент Выбор типа и разных комплектующих лодки Оформление заказа Успешная регистрация Полная оплата Оплата частями Оплата заказа Проверка оплаты заказа и внесение клиентов в систему Менеджер Извещение о состоянии готовности лодки Доставка лодки Спецификация прецендентов Прецендент Краткое описание Субъекты Предусловия Основной поток Альтернативный поток Постусловие Вход в систему Прецендент позволяет субъекту войти в свой личный кабинет клиент Субъект открывает форму и вводит свой логин и пароль и если пароль правилен переходит в свой личный кабинет, если пароль неправилен, то выходит уведомление об этом. Система проверяет правильность введенных данных У субъекта может быть не зарегистрирован в этом случае субъект нажимает на кнопку регистрации Если прецендент был успешным, то система переходит в следующую форму 17 Прецендент Краткое описание Субъекты Предусловия Основной поток Альтернативный поток Постусловие Прецендент Краткое описание Субъекты Предусловия Основной поток Альтернативный поток Постусловие Прецендент Краткое описание Субъекты Предусловия Основной поток Регистрация Прецендент позволяет субъекту зарегистрироваться в систему клиент Субъект открывает форму и вводит свои данные и если все данные введены правильны, то информация о субъекте вносится в систему и выходит уведомление об успешной регистрации Система проверяет правильность введенных данных Субъект может быть уже зарегистрирован в системе и в таком случае он нажимает на кнопку авторизации и переходит в форму авторизации. Если прецендент был успешным, то система переходит в следующую форму Просмотр каталога Клиент может выбрать лодку в приложении. Выбрать тип, аксессуары и разные комплектующие лодки. клиент Имеется список товаров, клиент может просмотреть список и детально ознакомиться с его содержимым. Клиент выбирает стандартную комплектацию из списка и детально знакомиться с ней Если стандартная комплектация не подходит клиенту, он строит требуемую ему конфигурацию в диалоговом режиме. Компоненты комплектации лодки представляются как список для выбора из доступных альтернатив. Для каждой новой комплектации система подсчитывает цену. Комплектация выбрана, клиент может приступать к оформлению заказа. Оформление заказа Чтобы оформить заказ, клиент должен заполнить электронную форму с адресами для доставки товара и отправки счетафактуры, а также деталями, касающимися оплаты. Оплата заказа осуществляется наличными в офисе продаж или банковским переводом на счет компании. Онлайн заказ должен быть оплачен, прежде чем начнется строительство лодки. После ввода заказа система отправляет клиенту по электронной почте сообщение с подтверждением получения заказа вместе с относящимися к нему деталями (стоимость, номер счета, банковские реквизиты для безналичной оплаты и т. п.). клиент Клиент выбрал требуемую комплектацию лодки, открыта электронная форма. Клиент заполняет электронную форму с адресами для доставки товара и отправки счета-фактуры, а также деталями, касающимися оплаты. После ввода заказа система отправляет клиенту по электронной почте сообщение с подтверждением получения заказа вместе с относящимися к нему деталями. В 18 Альтернативный поток Постусловие Прецендент Краткое описание Субъекты Предусловия Основной поток Альтернативный поток Постусловие Прецендент Краткое описание Субъекты Предусловия Основной поток Альтернативный поток Постусловие Прецендент Краткое описание Субъекты Предусловия Основной поток Альтернативный поток базу данных вносится информация о клиенте и сделанном им заказе. Электронная форма заполнена, система отправила клиенту по электронной почте сообщение с подтверждением получения заказа. Оплата заказа Оплата заказа осуществляется наличными в офисе продаж или банковским переводом на счет компании. клиент Выбран способ оплаты при оформлении заказа. Оплата заказа осуществляется наличными в офисе продаж Оплата заказа осуществляется банковским переводом на счет компании. Деньги получены либо переведены на счёт компании. Проверка оплаты заказа и внесение клиентов в систему Менеджер проверяет, поступила ли оплата (в случае безналичного расчета) и делает соответствующую пометку при поступлении денег. Если деньги не поступают в течение 5 банковских дней, заказ аннулируется. После оплаты или в случае оплаты наличными работник печатает счет-фактуру и отправляет ее на склад вместе с требованием заказанной комплектации. Заказ помечается как поставленный в очередь. менеджер Заказ оформлен и подтверждён После оплаты или в случае оплаты наличными работник печатает счет-фактуру и отправляет ее на склад вместе с требованием заказанной конфигурации. Заказ помечается как поставленный в очередь002E У субъекта может быть не зарегистрирован в этом случае субъект нажимает на кнопку регистрации Сделана запись в базе данных об оплате заказа Извещение о состоянии готовности лодки Пока клиент ожидает изготовления лодки, он может проверить состояние заказа (Работы не начаты / Начато производство/25% готовности /50% готовности/75% готовности/ отделка лодки/готово). Клиент, менеджер Заказ оформлен. После отправки счета-фактуры на склад вместе с требованием заказанной комплектации, заказ помечается как поставленный в очередь. Изготовленная лодка передается со склада в отдел доставки, при этом заказ помечается как собранный. Лодка поставляется клиенту. По окончании работы с заказом, он помечается в системе как выполненный. 19 Постусловие Возможен просмотр статуса заказа Прецендент Краткое описание Субъекты Предусловия Основной поток Альтернативный поток Постусловие Доставка лодки Лодка поставляется клиенту Клиент, менеджер Заказ оформлен, оплачен, собран. Компания поставляет клиенту заказ Заказ доставлен 2. Моделирование реализации прецедентов На данном этапе определили наборы классов, реализующих поведение, описанное в прецедентах. Для этого необходимо создать диаграмму последовательности которая является одной из разновидностей диаграмм взаимодействия и предназначена для моделирования взаимодействия объектов Системы во времени, а также обмена сообщениями между ними. клиент альт система Ввести данные: логин и пароль [result = false] проверить данные пользователя error: Логин и пароль не верны [result = true] Ввести данные заказа проверить данные заказа заказ создан изменить данные заказа удалить заказ return = true 3. Моделирование данных В рамках этого этапа выделили таблицы, домены, ключи и отношения, на основе которых будет производиться разработка базы данных. Список сущностей № 1 2 3 4 5 Название Клиенты Заказы Менеджеры Доставка Лодки 20 6 7 8 Аксессуары Партнеры Счет Список атрибутов таблицы «Клиенты» № Имя поля Тип данных 1 2 3 4 5 6 7 8 9 10 11 Числовой Короткий текст Короткий текст Дата и время Короткий текст Короткий текст Короткий текст Короткий текст Короткий текст Короткий текст Короткий текст Customer_ID FistName FamilyName DateOfBirth OrganisationName Address City email Phone IDNumber IDDocumentName Не пусто Да нет нет нет нет нет нет нет нет нет нет Ограничения ПК (первичный ключ) Список атрибутов таблицы «Заказы» № Имя поля Тип данных 1 2 3 4 5 6 7 Числовой Дата и время Денежный Числовой Денежный Денежный Короткий текст Contract_ID Date DepositPayed Order_ID ContractTotalPrice ContracTotalPrice_inclVAT ProductionProcess Не пусто Да нет нет Да нет нет нет Ограничения ПК (первичный ключ) ВК (внешний ключ) Список атрибутов таблицы «Менеджеры» № Имя поля 1 2 3 SalesPerson_ID FirstName FamilyName Тип данных Не пусто Числовой Да Короткий текст нет Короткий текст нет Ограничения ПК (первичный ключ) Список атрибутов таблицы «Доставка» № Имя поля 1 2 3 4 5 6 7 Order_ID Date Salesperson_ID Customer_ID Boat_ID DeliveryAddress City Тип данных Не пусто Числовой Да Дата и время нет Числовой Да Числовой Да Числовой Да Короткий текст нет Короткий текст нет Ограничения ПК (первичный ключ) ВК (внешний ключ) ВК (внешний ключ) ВК (внешний ключ) Список атрибутов таблицы «Лодки» № Имя поля Тип данных Не пусто 21 Ограничения 1 2 3 4 5 6 7 8 9 10 boat_ID Model BoatType NumberOfRowers Mast Colour Wood BasePrice VAT Поле11 Числовой Короткий текст Короткий текст Числовой Логический Короткий текст Короткий текст Денежный Числовой Числовой Да нет нет нет нет нет нет нет нет нет ПК (первичный ключ) Список атрибутов таблицы «Аксессуары» № Имя поля 1 2 3 4 5 6 7 8 9 Accessory_ID AccName DescriptionOfAccessory Price VAT Inventory OrderLevel OrderBatch Partner_ID Тип данных Не пусто Числовой Да Короткий текст нет Короткий текст нет Числовой нет Числовой нет Числовой нет Числовой нет Числовой нет Числовой Да Ограничения ПК (первичный ключ) ВК (внешний ключ) Список атрибутов таблицы «Партнеры» № Имя поля 1 2 3 4 Partner_ID Name Address City Тип данных Не пусто Числовой Да Короткий текст нет Короткий текст нет Короткий текст нет Ограничения ПК (первичный ключ) Список атрибутов таблицы «Счет» № Имя поля Тип данных 1 2 3 4 5 6 Числовой Числовой Логический Денежный Денежный Дата и время Invoice_ID Contract_ID Settled Sum Sum_inclVAT Date Не пусто Да Да нет нет нет нет 22 Ограничения ПК (первичный ключ) ВК (внешний ключ) № 1 2 3 4 5 6 7 8 9 10 Названиесвязи 1:М 1:М 1:М 1:М 1:М 1:М 1:М 1:М 1:М 1:М Сущности, участвующиев связи Клиенты-доставка Менеджеры-доставка Лодки-доставка Лодки-аксессуары лодочные Аксессуары-аксессуары лодочные Аксессуары-критерии доставки Партнеры-аксессуары Доставка-критерии доставки Доставка-Заказы Заказы-счет 4. Создание базы данных Далее мы создали базу данных в приложении Microsoft SQL Server на основе выданной нам ER-модели и импортировали данные из MS Exel. 23 5. Обеспечение безопасности данных Создали форму для входа в систему. Также реализовали идентификацию пользователей посредством связки «логин/пароль» 5.1 запустили приложение VisualStudio и создали новый проект приложение WindowsForms(.NET Network), добавили необходимые элементы с панеля элементов, картинки и текст для главной формы. Еще добавили алгоритм для переходов по формам 5.2 для соединения проекта с нашей базы данных создали класс и написали код для подключения бд Листинг кода: using using using using using using System; System.Collections.Generic; System.Linq; System.Text; System.Threading.Tasks; System.Data.SqlClient; namespace WindowsFormsApp9 { class log1 { SqlConnection con = new SqlConnection(@"Data Source=MICHI\SQLEXPRESS;Initial Catalog=lodka;Integrated Security=True"); public void openConnection() { if(con.State ==System.Data.ConnectionState.Closed) { con.Open(); } } public void closeConnection() 24 { if (con.State == System.Data.ConnectionState.Open) { con.Close(); } } public SqlConnection GetConnection() { return con; } } } 5.3 Создали первую форму Form1 «Авторизация пользователя», добавили нужные кнопки и написали код для авторизации Листинг кода: using using using using using using using using using using System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Threading.Tasks; System.Windows.Forms; System.Data.SqlClient; namespace WindowsFormsApp9 { public partial class Form1 : Form { log1 log1 = new log1(); public Form1() { InitializeComponent(); StartPosition = FormStartPosition.CenterScreen; } private void button2_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); this.Hide(); f2.Show(); } private void Form1_Load(object sender, EventArgs e) { //textBox2.PasswordChar = '●'; pictureBox2.Visible = false; textBox1.MaxLength = 30; textBox2.MaxLength = 30; } private void button1_Click(object sender, EventArgs e) { var loginUser = textBox1.Text; var passUser = textBox2.Text; 25 SqlDataAdapter adapter = new SqlDataAdapter(); DataTable dt = new DataTable(); string querystring = $"select Customer_ID, login, password from клиенты where login= '{loginUser}' and password = '{passUser}'"; SqlCommand cmd = new SqlCommand(querystring, log1.GetConnection()); adapter.SelectCommand = cmd; adapter.Fill(dt); if (dt.Rows.Count == 1) { MessageBox.Show("Вы успещно вошли!", "Успешно!", MessageBoxButtons.OK, MessageBoxIcon.Information); Form3 f3 = new Form3(); this.Hide(); f3.Show(); } else { MessageBox.Show("Такого аккаунта не существует!Провертье правильность логина и пароля", "Аккаунта не существует!!", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } private void textBox1_TextChanged(object sender, EventArgs e) { } private void button2_Click_1(object sender, EventArgs e) { Form2 f2 = new Form2(); this.Hide(); f2.Show(); } private void pictureBox1_Click(object sender, EventArgs e) { textBox2.UseSystemPasswordChar = false; pictureBox1.Visible = false; pictureBox2.Visible = true; } private void pictureBox2_Click(object sender, EventArgs e) { textBox2.UseSystemPasswordChar = true; pictureBox1.Visible = true; pictureBox2.Visible = false; } private void button3_Click(object sender, EventArgs e) { Form4 f4 = new Form4(); this.Hide(); f4.Show(); } } } 26 Скрин формы: 5.4 Также создали форму для регистрации пользователя Листинг кода: using using using using using using using using using using System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Threading.Tasks; System.Windows.Forms; System.Data.SqlClient; namespace WindowsFormsApp9 { public partial class Form2 : Form { log1 log1 = new log1(); public Form2() { InitializeComponent(); StartPosition = FormStartPosition.CenterScreen; } private void Form2_Load(object sender, EventArgs e) { textBox_password.PasswordChar = '●'; pictureBox2.Visible = false; } private void textBox4_TextChanged(object sender, EventArgs e) { } 27 private void label4_Click(object sender, EventArgs e) { } private void label2_Click(object sender, EventArgs e) { } private void textBox3_TextChanged(object sender, EventArgs e) { } private void textBox2_TextChanged(object sender, EventArgs e) { } private void label3_Click(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { Form1 f1 = new Form1(); this.Hide(); f1.Show(); } private void button3_Click(object sender, EventArgs e) { textBox_ID.Text = " "; textBox_FistName.Text = " "; textBox_FamilyName.Text = " "; textBox_OrganisationName.Text = " "; textBox_Addres.Text = " "; textBox_City.Text = " "; textBox_email.Text = " "; textBox_Phone.Text = " "; textBox_IDNumber.Text = " "; textBox_IDDocumentName.Text = " "; textBox_login.Text = " "; textBox_password.Text = " "; } private void label8_Click(object sender, EventArgs e) { } private void pictureBox2_Click(object sender, EventArgs e) { } private void button2_Click(object sender, EventArgs e) { if(textBox_FistName.Text =="Введите имя") { 28 MessageBox.Show("Введите имя"); return; } if(textBox_FamilyName.Text =="Введите фамилию") { MessageBox.Show("Введите фамилию"); return; } var var var var var var var var var var var var var CustomerID = textBox_ID.Text; FistName = textBox_FistName.Text; FamilyName = textBox_FamilyName.Text; DateOfBirth = dateTimePicker1.Value; OrganisationName = textBox_OrganisationName.Text; Addres = textBox_Addres.Text; City = textBox_City.Text; email = textBox_email.Text; Phone = textBox_Phone.Text; IDNumber = textBox_IDNumber.Text; IDDocumentName = textBox_IDDocumentName.Text; login = textBox_login.Text; password = textBox_password.Text; string querystring = $"insert into клиенты(Customer_ID, FistName, FamilyName, DateOfBirth, OrganisationName, Addres, City, email, Phone, IDNumber, IDDocumentName, login, password) values ('{CustomerID}', '{FistName}', '{FamilyName}', '{DateOfBirth}', '{OrganisationName}', '{Addres}', '{City}', '{email}', '{Phone}', '{IDNumber}', '{IDDocumentName}', '{login}', '{password}') "; SqlCommand com = new SqlCommand(querystring, log1.GetConnection()); log1.openConnection(); if(com.ExecuteNonQuery() ==1) { MessageBox.Show("Аккаунт успешно создан!", "Успех!"); Form1 f1 = new Form1(); this.Hide(); f1.Show(); } else { MessageBox.Show("Аккаунт не создан!"); } log1.closeConnection(); } private void label6_Click(object sender, EventArgs e) { } private void label9_Click(object sender, EventArgs e) { } private void pictureBox1_Click(object sender, EventArgs e) { 29 } private void pictureBox4_Click(object sender, EventArgs e) { } private void textBox1_TextChanged(object sender, EventArgs e) { } private void dateTimePicker1_ValueChanged(object sender, EventArgs e) { } } } Скрин формы: 6. Создание формы оформления заказа После успешной авторизации либо регистрации клиента перебрасывает на форму оформления заказа и каталога. Листинг программы: using using using using using using using using using using System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Threading.Tasks; System.Windows.Forms; System.Data.SqlClient; namespace WindowsFormsApp9 30 { public partial class Form3 : Form { log1 db = new log1(); public Form3() { InitializeComponent(); StartPosition = FormStartPosition.CenterScreen; } private void Form3_Load(object sender, EventArgs e) { // TODO: данная строка кода позволяет загрузить данные в таблицу "lodkaDataSet.заказы". При необходимости она может быть перемещена или удалена. this.заказыTableAdapter.Fill(this.lodkaDataSet.заказы); // TODO: данная строка кода позволяет загрузить данные в таблицу "lodkaDataSet.Счет". При необходимости она может быть перемещена или удалена. this.счетTableAdapter.Fill(this.lodkaDataSet.Счет); // TODO: данная строка кода позволяет загрузить данные в таблицу "lodkaDataSet.КритерииДоставки". При необходимости она может быть перемещена или удалена. this.критерииДоставкиTableAdapter.Fill(this.lodkaDataSet.КритерииДоставки); // TODO: данная строка кода позволяет загрузить данные в таблицу "lodkaDataSet.аксессуары". При необходимости она может быть перемещена или удалена. this.аксессуарыTableAdapter.Fill(this.lodkaDataSet.аксессуары); // TODO: данная строка кода позволяет загрузить данные в таблицу "lodkaDataSet.Лодки". При необходимости она может быть перемещена или удалена. this.лодкиTableAdapter.Fill(this.lodkaDataSet.Лодки); } private void button1_Click(object sender, EventArgs e) { db.openConnection(); int id; var date = dateTimePicker1.Value; int DepositPayed = int.Parse(textBox5.Text); int Order_ID = int.Parse(textBox4.Text); int ContactTotalPrice = int.Parse(textBox3.Text); int ContacTotalPrice_incIVAT = int.Parse(textBox2.Text); var ProductionProcess = textBox1.Text; if (int.TryParse(textBox7.Text, out id)) { var addQuery = $"insert into заказы ( Contract_ID, Date, DepositPayed, Order_ID, ContractTotalPrice, ContracTotalPrice_inclVAT, ProductionProcess) values ('{id}', '{date}','{DepositPayed}','{Order_ID} ','{ContactTotalPrice}','{ContacTotalPrice_incIVAT}', '{ProductionProcess}')"; var cmd = new SqlCommand(addQuery, db.GetConnection()); cmd.ExecuteNonQuery(); MessageBox.Show("Запись успешо добавлено!", "Успех!", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("Запись не добавдено, провертье правильность введенных данных!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); } db.closeConnection(); } 31 private void button5_Click(object sender, EventArgs e) { Form1 f1 = new Form1(); this.Hide(); f1.Show(); } } } Скрин программы: 7. Создание раздела для администратора системы Аналогичным способом сделали форму авторизации менеджера При авторизации менеджера форма переходит в специальную форму для менеджера, где он может редактировать, удалить и добавить в базу данных Заказы, Клиенты, Лодки и Аксессуары. Листинг программы: using using using using System; System.Data; System.Data.SqlClient; System.Windows.Forms; 32 namespace WindowsFormsApp9 { enum ROWState { Existed, New, Modified, ModifiedNew, Deleted } public partial class Form7 : Form { log1 db = new log1(); int selectedRow; public Form7() { InitializeComponent(); StartPosition = FormStartPosition.CenterScreen; } private void Form7_Load(object sender, EventArgs e) { CreateColumns(); RefreshDataGrid(dataGridView1); } private void CreateColumns() { dataGridView1.Columns.Add("Contract_ID", "id"); dataGridView1.Columns.Add("Date", "Дата"); dataGridView1.Columns.Add("DepositPayed", "Депозитная оплата"); dataGridView1.Columns.Add("Order_ID", "ID доставки"); dataGridView1.Columns.Add("ContactTotalPrice", "цена"); dataGridView1.Columns.Add("ContacTotalPrice_incIVAT", "Общая цена"); dataGridView1.Columns.Add("ProductionProcess", "Процесс готовности"); dataGridView1.Columns.Add("ItsNem", String.Empty); } private void ReadSingleRows(DataGridView dgw, IDataRecord record) { dgw.Rows.Add(record.GetInt32(0), record.GetDateTime(1), record.GetInt32(2), record.GetInt32(3), record.GetInt32(4), record.GetInt32(5), record.GetString(6), ROWState.ModifiedNew); } private void RefreshDataGrid(DataGridView dgw) { dgw.Rows.Clear(); string queryString = $"select * from заказы"; SqlCommand cmd = new SqlCommand(queryString, db.GetConnection()); db.openConnection(); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { ReadSingleRows(dgw, reader); } 33 reader.Close(); } private void button5_Click_1(object sender, EventArgs e) { Form1 f1 = new Form1(); this.Hide(); f1.Show(); } private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { selectedRow = e.RowIndex; if (e.RowIndex >= 0) { DataGridViewRow row = dataGridView1.Rows[selectedRow]; textBox7.Text textBox6.Text textBox5.Text textBox4.Text textBox3.Text textBox2.Text textBox1.Text = = = = = = = row.Cells[0].Value.ToString(); row.Cells[1].Value.ToString(); row.Cells[2].Value.ToString(); row.Cells[3].Value.ToString(); row.Cells[4].Value.ToString(); row.Cells[5].Value.ToString(); row.Cells[6].Value.ToString(); } } private void pictureBox1_Click(object sender, EventArgs e) { RefreshDataGrid(dataGridView1); ClierFiealds(); } private void pictureBox6_Click(object sender, EventArgs e) { RefreshDataGrid(dataGridView2); } private void pictureBox9_Click(object sender, EventArgs e) { RefreshDataGrid(dataGridView3); } private void pictureBox12_Click(object sender, EventArgs e) { RefreshDataGrid(dataGridView4); } private void pictureBox15_Click(object sender, EventArgs e) { RefreshDataGrid(dataGridView5); } private void button1_Click(object sender, EventArgs e) { Form5 f5 = new Form5(); this.Hide(); f5.Show(); 34 } private void textBox6_TextChanged(object sender, EventArgs e) { } private void label11_Click(object sender, EventArgs e) { } private void textBox1_TextChanged(object sender, EventArgs e) { } private void label5_Click(object sender, EventArgs e) { } private void label6_Click(object sender, EventArgs e) { } private void label7_Click(object sender, EventArgs e) { } private void label9_Click(object sender, EventArgs e) { } private void label10_Click(object sender, EventArgs e) { } private void textBox5_TextChanged(object sender, EventArgs e) { } private void textBox4_TextChanged(object sender, EventArgs e) { } private void textBox3_TextChanged(object sender, EventArgs e) { } private void textBox2_TextChanged(object sender, EventArgs e) { } private void Search(DataGridView dgw) { dgw.Rows.Clear(); 35 string searchString = $"select * from заказы where concat (Contract_ID, Date, DepositPayed, Order_ID, ContractTotalPrice, ContracTotalPrice_inclVAT, ProductionProcess) like '%" + textBox36.Text + "% '"; SqlCommand cmd = new SqlCommand(searchString, db.GetConnection()); db.openConnection(); SqlDataReader read = cmd.ExecuteReader(); while (read.Read()) { ReadSingleRows(dgw, read); } read.Close(); } private void DeleteRow() { int index = dataGridView1.CurrentCell.RowIndex; dataGridView1.Rows[index].Visible = false; if (dataGridView1.Rows[index].Cells[0].Value.ToString() == string.Empty) { dataGridView1.Rows[index].Cells[6].Value = ROWState.Deleted; return; } dataGridView1.Rows[index].Cells[6].Value = ROWState.Deleted; } private void Update() { db.openConnection(); for(int index = 0; index < dataGridView1.RowCount; index++) { var rowstate = (ROWState)dataGridView1.Rows[index].Cells[6].Value; if (rowstate == ROWState.Existed) continue; if(rowstate == ROWState.Deleted) { var id = Convert.ToInt32(dataGridView1.Rows[index].Cells[0].Value); var deleteQuery = $"delete * from заказы where contract_ID = {id}"; var command = new SqlCommand(deleteQuery, db.GetConnection()); command.ExecuteNonQuery(); } if(rowstate == ROWState.Modified) { var id = dataGridView1.Rows[index].Cells[0].Value.ToString(); var date = dataGridView1.Rows[index].Cells[0].Value.ToString(); var DepositPayed = dataGridView1.Rows[index].Cells[0].Value.ToString(); var Order_ID = dataGridView1.Rows[index].Cells[0].Value.ToString(); var ContactTotalPrice = dataGridView1.Rows[index].Cells[0].Value.ToString(); var ContacTotalPrice_incIVAT = dataGridView1.Rows[index].Cells[0].Value.ToString(); var ProductionProcess = dataGridView1.Rows[index].Cells[0].Value.ToString(); 36 var changeQuery = $"update заказы set Date = '{date}', DepositPayed = '{DepositPayed}', Order_ID = '{Order_ID}', ContractTotalPrice = '{ContactTotalPrice}', contracTotalPrice_incIVAT = '{ContacTotalPrice_incIVAT}', ProductionProcess = '{ProductionProcess}' where Contract_ID = '{id}'"; var command = new SqlCommand(changeQuery, db.GetConnection()); command.ExecuteNonQuery(); } } db.closeConnection(); } private void textBox36_TextChanged(object sender, EventArgs e) { Search(dataGridView1); } private void button3_Click(object sender, EventArgs e) { DeleteRow(); ClierFiealds(); } private void button2_Click(object sender, EventArgs e) { Update(); } private void Change() { var selectedRowIndex = dataGridView1.CurrentCell.RowIndex; int var int int int int var id; date = textBox6.Text; DepositPayed = int.Parse(textBox5.Text); Order_ID = int.Parse(textBox4.Text); ContactTotalPrice = int.Parse(textBox3.Text); ContacTotalPrice_incIVAT = int.Parse(textBox2.Text); ProductionProcess = textBox1.Text; if(dataGridView1.Rows[selectedRowIndex].Cells[0].Value.ToString() != string.Empty) { if(int.TryParse(textBox7.Text, out id)) { dataGridView1.Rows[selectedRowIndex].SetValues(id, date, DepositPayed, Order_ID, ContactTotalPrice, ContacTotalPrice_incIVAT, ProductionProcess); dataGridView1.Rows[selectedRowIndex].Cells[6].Value = ROWState.Modified; } else { MessageBox.Show("Id должен иметь числовой формат!"); } } } private void button4_Click(object sender, EventArgs e) { Change(); ClierFiealds(); } 37 private void ClierFiealds() { textBox7.Text = " "; textBox6.Text = " "; textBox5.Text = " "; textBox4.Text = " "; textBox3.Text = " "; textBox2.Text = " "; textBox1.Text = " "; } private void pictureBox3_Click(object sender, EventArgs e) { ClierFiealds(); } } } Скрин программы: Чтобы добавить новую запись менеджер нажимает на кнопку «Новая запись» и переходит на форму «новая запись». Листинг программы: using System; using System.Data.SqlClient; using System.Windows.Forms; namespace WindowsFormsApp9 { public partial class Form5 : Form { log1 db = new log1(); public Form5() { InitializeComponent(); StartPosition = FormStartPosition.CenterScreen; } private void Form5_Load(object sender, EventArgs e) { 38 } private void label4_Click(object sender, EventArgs e) { } private void panel1_Paint(object sender, PaintEventArgs e) { } private void button1_Click(object sender, EventArgs e) { db.openConnection(); int id; //=int.Parse(textBox6.Text); var date = dateTimePicker1.Value; int DepositPayed = int.Parse(textBox5.Text); int Order_ID = int.Parse(textBox4.Text); int ContactTotalPrice = int.Parse(textBox3.Text); int ContacTotalPrice_incIVAT = int.Parse(textBox2.Text); var ProductionProcess = textBox1.Text; if (int.TryParse(textBox6.Text, out id)) { var addQuery = $"insert into заказы ( Contract_ID, Date, DepositPayed, Order_ID, ContractTotalPrice, ContracTotalPrice_inclVAT, ProductionProcess) values ('{id}', '{date}','{DepositPayed}','{Order_ID} ','{ContactTotalPrice}','{ContacTotalPrice_incIVAT}', '{ProductionProcess}')"; var cmd = new SqlCommand(addQuery, db.GetConnection()); cmd.ExecuteNonQuery(); MessageBox.Show("Запись успешо добавлено!", "Успех!", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("Запись не добавдено, провертье правильность введенных данных!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); } db.closeConnection(); } private void button5_Click(object sender, EventArgs e) { Form7 f7 = new Form7(); this.Hide(); f7.Show(); } private void pictureBox3_Click(object sender, EventArgs e) { textBox1.Text = " "; textBox2.Text = " "; textBox3.Text = " "; textBox4.Text = " "; textBox5.Text = " "; textBox6.Text = " "; } } } 39 Скрин программы: МДК 01.03. Разработка мобильных приложений По данной МДК выполнены следующие виды работ: Разработка интерфейса мобильного приложения и определение компонентов для приложения. Программирование с использованием нескольких активностей. Разработка мобильного приложения Стили и темы Мы настроили элементы с помощью различных атрибутов, которые задают высоту, ширину, цвет фона, текста и так далее. Мы можем объединить несколько элементов с одними и теми же настройки в стили. Стили Activity_main <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView style="@style/TextViewStyle" android:text="Android Lollipop"/> <TextView style="@style/TextViewStyle" android:text="Android Marshmallow"/> <TextView style="@style/TextViewStyle" android:text="Android Nougat"/> </LinearLayout> 40 Styles.xml <?xml version="1.0" encoding="utf-8"?> <resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/purple_200</item> <item name="colorPrimaryDark">@color/purple_500</item> <item name="colorAccent">@color/teal_700</item> </style> <style name="TextViewStyle"> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">50dp</item> <item name="android:textColor">#3f51b5</item> <item name="android:textSize">22sp</item> <item name="android:gravity">center</item> </style> </resources> Сркин программы: Создание собственной темы styles.xml <?xml version="1.0" encoding="utf-8"?> <resources> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/purple_200</item> <item name="colorPrimaryDark">@color/teal_700</item> <item name="colorAccent">@color/purple_500</item> </style> <style name="TextViewStyle"> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">50dp</item> <item name="android:gravity">center</item> </style> <style name="CustomTheme" parent="Theme.AppCompat.Light"> <item name="android:textColor">#333333</item> <item name="android:textSize">22sp</item> </style> </resources> 41 AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myapplication"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/CustomTheme"> <activity android:name=".MainActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> Сркин программы: 42 ЗАКЛЮЧЕНИЕ В результате выполнения программы учебной практики выполнены задачи: - закрепление, углубление и расширение теоретических знаний, умений и навыков, полученных студентами в процессе теоретического обучения; - овладение профессионально – практическими умениями, производственными навыками и передовыми методами труда; - овладение нормами профессии в мотивационной сфере: осознание мотивов и духовных ценностей в избранной профессии; - овладение основами профессии в операционной сфере: ознакомление и усвоение методологии решения профессиональных задач (проблем); - изучение разных сторон профессиональной деятельности: социальной, правовой, гигиенической, психологической, психофизической, технической, технологической, экономической. В ходе прохождения учебной практики были выполнены практические работы для формирования общих компетенций, включающих в себя способность: ОК 01. Выбирать способы решения задач профессиональной деятельности, применительно к различным контекстам. ОК 02. Осуществлять поиск, анализ и интерпретацию информации, необходимой для выполнения задач профессиональной деятельности. ОК 03. Планировать и реализовывать собственное профессиональное и личностное развитие. ОК 04. Работать в коллективе и команде, эффективно взаимодействовать с коллегами, руководством, клиентами. И профессиональных компетенций, соответствующих основным видам профессиональной деятельности: ПК 1.3. Выполнять отладку программных модулей с использованием специализированных программных средств. ПК 1.4. Выполнять тестирование программных модулей. ПК 1.5. Осуществлять оптимизацию программного кода модуля. ПК 1.2. Осуществлять разработку кода программного продукта на основе готовых спецификаций на уровне модуля. ПК 1.6. Разрабатывать компоненты проектной и технической документации с использованием графических языков спецификаций. ПК 2.1. Разрабатывать требования к программным модулям на основе анализа проектной и технической документации на предмет взаимодействия компонент. ПК 2.4. Осуществлять разработку тестовых наборов и тестовых сценариев для программного обеспечения. ПК 2.5. Производить инспектирование компонент программного обеспечения на предмет соответствия стандартам кодирования. В результате прохождения учебной практики мы продемонстрировали следующие результаты образования: Овладели навыками практического опыта в: 43 интеграции модулей в программное обеспечение отладке программных модулей. разрабатывать и оформлять требования к программным модулям по предложенной документации. разрабатывать тестовые наборы (пакеты) для программного модуля. разрабатывать тестовые сценарии программного средства. инспектировать разработанные программные модули на предмет соответствия стандартам кодирования. интегрировать модули в программное обеспечение. отлаживать программные модули. проведении тестирования программного модуля по определенному сценарию; использовании инструментальных средств на этапе отладки программного продукта; разработке мобильных приложений. научились: • выполнять отладку и тестирование программы на уровне модуля; • осуществлять разработку кода программного модуля на современных языках программирования; • оформлять документацию на программные средства. использовать выбранную систему контроля версий; использовать методы для получения кода с заданной функциональностью и степенью качества. анализировать проектную и техническую документацию. использовать специализированные графические средства построения и анализа архитектуры программных продуктов. организовывать заданную интеграцию модулей в программные средства на базе имеющейся архитектуры и автоматизации бизнес-процессов. определять источники и приемники данных. проводить сравнительный анализ. выполнять отладку, используя методы и инструменты условной компиляции (классы debug и trace). оценивать размер минимального набора тестов. разрабатывать тестовые пакеты и тестовые сценарии. выявлять ошибки в системных компонентах на основе спецификаций. выполнять тестирование интеграции. создавать классы- исключения на основе базовых классов. выполнять ручное и автоматизированное тестирование программного модуля. использовать приемы работы в системах контроля версий. использовать инструментальные средства отладки программных продуктов. выполнять отладку, используя методы и инструменты условной компиляции. 44 приемы работы в системах контроля версий. распознавать задачу и/или проблему в профессиональном и/или социальном контексте; анализировать задачу и/или проблему и выделять её составные части; определять этапы решения задачи; выявлять и эффективно искать информацию, необходимую для решения задачи и/или проблемы; составить план действия; определить необходимые ресурсы; владеть актуальными методами работы в профессиональной и смежных сферах; реализовать составленный план; оценивать результат и последствия своих действий (самостоятельно или с помощью наставника); определять задачи для поиска информации; определять необходимые источники информации; планировать процесс поиска; структурировать получаемую информацию; выделять наиболее значимое в перечне информации; оценивать практическую значимость результатов поиска; оформлять результаты поиска; определять актуальность нормативно-правовой документации в профессиональной деятельности; применять современную научную профессиональную терминологию; определять и выстраивать траектории профессионального развития и самообразования; организовывать работу коллектива и команды; взаимодействовать с коллегами, руководством, клиентами в ходе профессиональной деятельности. В ходе прохождения учебной практики выполнены практические работы: создана база данных, произведен импорт данных. создано настольное приложение: разработаны тестовые сценарии проведено Unit тестирование разработано мобильное приложение Таким образом, достигнуты цели практики: формирование и развитие профессиональных компетенций и профессиональных знаний в сфере избранной специальности, закрепление полученных теоретических знаний и овладение необходимыми методами по новым видам деятельности. 45 СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ ПМ.01. РАЗРАБОТКА ПРОГРАММНЫХ МОДУЛЕЙ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ КОМПЬЮТЕРНЫХ СИСТЕМ 1. Туманов, В. Е. Основы проектирования реляционных баз данных : учебное пособие / В. Е. Туманов. — 3-е изд. — Москва : Интернет-Университет Информационных Технологий (ИНТУИТ), Ай Пи Ар Медиа, 2020. — 502 c. — ISBN 978-5-4497-0683-6. 2. Гостев, И. М. Операционные системы : учебник и практикум для среднего профессионального образования / И. М. Гостев. — 2-е изд., испр. и доп. — Москва : Издательство Юрайт, 2020. — 164 с. — (Профессиональное образование). — ISBN 978-5-534-04951-0 3. Соколова, В. В. Разработка мобильных приложений : учебное пособие для среднего профессионального образования / В. В. Соколова. — Москва : Издательство Юрайт, 2020. — 175 с. — (Профессиональное образование). — ISBN 978-5-534-10680-0 4. Двойнишников, С. В. Системное программирование. Язык С : учебное пособие для СПО / С. В. Двойнишников, К. Ф. Лысаков. — Саратов, Москва : Профобразование, Ай Пи Ар Медиа, 2020. — 156 c. — ISBN 978-5-44880790-9, 978-5-4497-0451-1 5. Подбельский, В. В. Программирование. Базовый курс С# : учебник для вузов / В. В. Подбельский. — Москва : Издательство Юрайт, 2020. — 369 с. — (Высшее образование). — ISBN 978-5-534-10616-9 ПМ.02. ОСУЩЕСТВЛЕНИЕ ИНТЕГРАЦИИ ПРОГРАММНЫХ МОДУЛЕЙ 1. Долженко А.И. Технологии Командной Разработки Программного Обеспечения Информационных Систем [Электронный Ресурс]/ Долженко А.И.— Электрон.Текстовые Данные.— М.: Интернет-Университет Информационных Технологий (Интуит), 2016.— 300 C.— Режим Доступа: Http://Www.Iprbookshop.Ru/39569.— Эбс «Iprbooks» 2. Гниденко, И. Г. Технология Разработки Программного Обеспечения : Учебное Пособие Для Среднего Профессионального Образования / И. Г. Гниденко, Ф. Ф. Павлов, Д. Ю. Федоров. — Москва : Издательство Юрайт, 2020. — 235 С. — (Профессиональное Образование). — Isbn 978-5-534-05047-9. — Текст : Электронный // Эбс Юрайт [Сайт]. — Url: 3. Проектирование Информационных Систем : Учебник И Практикум Для Среднего Профессионального Образования / Д. В. Чистов, П. П. Мельников, А. В. Золотарюк, Н. Б. Ничепорук ; Под Общей Редакцией Д. В. Чистова. — Москва : Издательство Юрайт, 2020. — 258 С. — (Профессиональное Образование). — Isbn 978-5-534-03173-7. — Текст : Электронный // Эбс Юрайт [Сайт]. — Url: 4. Казанский, А. А. Программирование На Visual C# : Учебное Пособие Для Среднего Профессионального Образования / А. А. Казанский. — 2-Е Изд., Перераб. И Доп. — Москва : Издательство Юрайт, 2020. — 192 С. — (Профессиональное Образование). — Isbn 978-5-534-14130-6. — Текст : Электронный // Эбс Юрайт [Сайт]. — Url: 5. Подбельский, В. В. Программирование. 46 Базовый Курс С# : Учебник Для Среднего Профессионального Образования / В. В. Подбельский. — Москва : Издательство Юрайт, 2020. — 369 С. — (Профессиональное Образование). — Isbn 978-5-534-11467-6. — Текст : Электронный // Эбс Юрайт [Сайт]. — Url: 6. Черткова, Е. А. Программная Инженерия. Визуальное Моделирование Программных Систем : Учебник Для Среднего Профессионального Образования / Е. А. Черткова. — 2-Е Изд., Испр. И Доп. — Москва : Издательство Юрайт, 2020. — 147 С. — (Профессиональное Образование). — Isbn 978-5-534-09823-5. — Текст : Электронный // Эбс Юрайт [Сайт]. — Url: 47