МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования «Московский технический университет связи и информатики» (МТУСИ) Кафедра Сетевые информационные технологии и сервисы (название полностью) ОТЧЕТ ПО УЧЕБНОЙ (ОЗНАКОМИТЕЛЬНОЙ) ПРАКТИКЕ «НАИМЕНОВАНИЕ РАССМАТРИВАЕМОЙ ЗАДАЧИ» Студент гр. № : Мельниченко Е.В. УБСТ2303 Руководитель: Кандзюба Е.В. Москва 2024 г. Оглавление 1. Техника безопасности при работе с вычислительными средствами .............................................. 3 1.1 Вред здоровью при работе с компьютером и как его избежать........................................................ 3 1.2 Как максимально снизить вредное воздействие на здоровье при работе с компьютером ............. 3 1.3 Техника безопасности при работе с компьютером ............................................................................ 4 2. С какой целью поступали в МТУСИ на специальность 09.03.02 ................................................... 5 2.1 Личные интересы .................................................................................................................................. 5 2.2 Перспективы профессии ....................................................................................................................... 5 2.3 Качество образования МТУСИ ............................................................................................................ 5 3. Какие навыки хотели бы приобрести ................................................................................................ 6 3.1 Технические навыки: ............................................................................................................................ 6 3.2 Специальные навыки: ........................................................................................................................... 7 3.3 Софт-скиллы: ......................................................................................................................................... 7 4.1 Разработка программного обеспечения .............................................................................................. 9 4.2 Кибербезопасность................................................................................................................................ 9 4.3 Сетевое администрирование ..............................................................................................................10 5. Рассмотреть одну из этих задач и предложить решение ...............................................................12 6. Какую видите тематику своей ВКР, рассмотреть и описать возможный путь решения ............15 6.1 Концепция ............................................................................................................................................15 6.2 Игровой движок ..................................................................................................................................15 6.3 Среда программирования ...................................................................................................................16 6.4 Реализация игрового объекта Player..................................................................................................16 6.5 Реализация фона и элементов ............................................................................................................17 6.6 Реализация персонажей ......................................................................................................................17 6.7 Картинки и анимации .........................................................................................................................17 7. Анализ проделанной работы ............................................................................................................19 2 1. Техника безопасности при работе с вычислительными средствами Пренебрежение правилами безопасности при работе с компьютером может привести к негативным последствиям для пользователя в виде ущерба для здоровья и имущества. Даже соблюдая технику безопасности как с работой со сложным бытовым устройством, вы можете получить непрямой вред своему здоровью, если не будете соблюдать рекомендации врачей, специально разработанных для пользователей ПК. 1.1 Вред здоровью при работе с компьютером и как его избежать Продолжительная работа с компьютером приводит к накопительному отрицательному воздействию на здоровье, т.е. ущерб долгое время может не проявляться явно, а постепенно и незаметно копится. Самыми опасными воздействиями на здоровье являются: Высокая нагрузка на органы зрения, вызывающая его ухудшение и появление синдромов «красного глаза» и «сухого глаза». Заболевание суставов, вызванное неправильной позой при продолжительной работе с компьютером. Высокая нагрузка на психику и нервную систему, возникающая при долгой концентрации внимания при большом потоке информации длительное время. 1.2 Как максимально снизить вредное воздействие на здоровье при работе с компьютером Соблюдение простых правил при работе с компьютером поможет максимально убрать отрицательное влияние на здоровье. Соблюдением правильного расстояния до монитора. Правильным расстоянием от глаз до экрана считается то расстояние, при котором пользователь может дотянуться кончиками пальцев прямой руки до верха монитора. Оптимальный угол экранного наклона – 30 градусов. Клавиатура должна находиться в 20-30 см от края стола. Стул или кресло должны обеспечить прямую осанку, при которой спина немного упирается в спинку кресла или стула. При работе с клавиатурой и мышью руки должны быть согнуты, а локти располагаться на столе или подлокотниках кресла. При таком положении рук отсутствует напряжение в кистях. При 3 работе с компьютерной мышью, положение рук не должно сильно меняться. Ноги не должны быть согнуты под стул или кресло, а должны быть выпрямлены вперед с упором в твердую поверхность (колени сгибаются под 90-градусным прямым углом); позвоночник должен принимать естественное положение. Ежечасно делать короткий перерыв в работе с компьютером и делать небольшую разминку для снятия напряжения в суставах и мышцах. Для снятия напряжения в глазах полезно будет сделать зарядку для органов зрения, которая включает в себя круговые движения открытыми глазами, смена точки фокусировки глаз с близкой до далекой. 1.3 Техника безопасности при работе с компьютером Компьютер – это сложное устройство, работающее под напряжением, поэтому на него тоже распространяются техника безопасности к электрическим устройствам. Применимо к компьютеру соблюдайте основные правила: Не работайте с компьютером при наличии внешних повреждений корпуса или изоляции силовых кабелей. В этом случае требуется замена кабелей или обращение в сервисный центр. Не кладите на корпус системного блока и не храните на нем разные предметы, особенно тяжелые, т.к. в этом случае может возникнуть вибрация, которая может вызвать нарушения работы компьютера. Не рекомендуется включать компьютер в розетки без заземления. Розетки и вилки должны быть цельными, без повреждений. Не включайте компьютер в помещении с высокой влажностью. Не оставляйте работающий ПК без присмотра длительное время. Нельзя работать с компьютером при открытом корпусе системного блока. Соблюдая технику безопасности и рекомендации, вы исключите риск ущербу своему здоровью и имуществу. 4 2. С какой целью поступали в МТУСИ на специальность 09.03.02 2.1 Личные интересы Я выбрал это направление из-за глубокого интереса к IT сфере. С самого детства я интересуюсь компьютерами и всем, что с ним связано. В школе мне понравилось программирование, когда мы первый раз писали простые программы на листочках. Сильнее увлекся изучать программирование в колледже, изучая C#, и когда впервые написал игу. Желание углубиться в эту область и получить новые знания стало основной моего выбора данной специальности. 2.2 Перспективы профессии Данная специальность постоянно развивается и не стоит на месте, что меня и заинтересовало. Постоянный рост перспектив, один из главных плюсов IT сферы. В современном мире все компании нуждаются в специалистах разных сфер, а специальность 09.03.02 изучает разные направления IT от изучения протоколов и сетей, до администрирования баз данных и изучения языков программирования. 2.3 Качество образования МТУСИ Когда я искал технический ВУЗ, одним из первых я увидел Московский технический университет связи и информатики (МТУСИ), и узнал, что он является ведущим техническим ВУЗом России. Обучение в МТУСИ предоставляет возможность учиться у опытных преподавателей и экспертов отрасли, участвовать в научных исследованиях и проектах, а также получать актуальные знания и навыки, востребованные на рынке труда. Я поступил в МТУСИ на специальность 09.03.02 с целью вникнуть, изучить и стать профессионалом в сфере IT, и лучший способ сделать это, это поступить на направление 09.03.02 (Информационные системы и технологии). 5 3. Какие навыки хотели бы приобрести 3.1 Технические навыки: Программирование: Владение различными языками программирования: Освоение популярных языков программирования, таких как Java, C++, Python, JavaScript, C# и др., для решения разнообразных задач. Разработка программного обеспечения: Знание этапов жизненного цикла разработки ПО, включая требования, дизайн, кодирование, тестирование и сопровождение. Алгоритмы и структуры данных: Понимание и применение основных алгоритмов (сортировка, поиск, графовые алгоритмы) и структур данных (списки, деревья, хеш-таблицы). Разработка и управление базами данных: Проектирование и оптимизация баз данных: Умение создавать схемы баз данных, нормализация данных, оптимизация запросов. Работа с СУБД: Навыки работы с различными системами управления базами данных, такими как MySQL, PostgreSQL, Oracle, SQLite. SQL-запросы: Понимание и составление сложных SQL-запросов для выборки, обновления и удаления данных, работа с транзакциями и индексами. Сетевые технологии: Основы сетевых протоколов и технологий: Знание работы сетевых протоколов (TCP/IP, DNS, DHCP, HTTP/HTTPS), архитектур сетей (LAN, WAN, VPN). Настройка и администрирование сетевого оборудования: Умение настраивать маршрутизаторы, коммутаторы и сетевые сервисы. Обеспечение сетевой безопасности: Знание методов защиты сетей, работа с межсетевыми экранами, системами обнаружения и предотвращения вторжений (IDS/IPS). Разработка веб-приложений: Основы HTML, CSS, JavaScript: Знание технологий для создания и стилизации веб-страниц, включая современные стандарты HTML5 и CSS3, основы JavaScript для интерактивности. 6 Фреймворки для разработки: Работа с популярными фреймворками и библиотеками, такими как React, Angular, Vue.js для фронтенда и Node.js, Django, Flask для бэкенда. Работа с REST и GraphQL API: Понимание принципов построения API, умение работать с запросами и ответами, интеграция различных сервисов. 3.2 Специальные навыки: Информационная безопасность: Криптография: Понимание основ шифрования, цифровых подписей, сертификатов. Этичный хакинг: Навыки проведения тестирования на проникновение (penetration testing), работа с инструментами типа Metasploit, Wireshark. Разработка мобильных приложений: Платформы iOS и Android: Навыки разработки мобильных приложений для платформ iOS (Swift, Objective-C) и Android (Java, Kotlin). Интеграция с API: Умение работать с внешними API, интеграция с сервисами и базами данных. Виртуализация и облачные технологии: Работа с облачными платформами: Навыки использования сервисов Amazon Web Services (AWS), Google Cloud Platform (GCP), Microsoft Azure. Виртуализация: Настройка и управление виртуальными машинами с использованием VMware, VirtualBox, Docker. 3.3 Софт-скиллы: Критическое мышление и решение проблем: Умение анализировать и решать сложные проблемы, находить оптимальные решения. Коммуникация и презентация: Навыки представления своих идей и решений, эффективное взаимодействие с коллегами и заказчиками. 7 Постоянное обучение и адаптивность: Готовность к постоянному обучению новым технологиям и методам, способность быстро адаптироваться к изменениям. 8 4. Какие задачи хотели бы научиться решать 4.1 Разработка программного обеспечения Разработка игр: создание сложных и качественных игр на различных движках (Unity/Unreal Engine 4 или 5, Godot) Разработка приложений: создание многофункциональных и надежных приложений на любой платформе (Android/IOS). Разработка сайтов: создание информативных веб-сайтов разнообразных видов (Статические сайты, Динамические сайты, Flash-сайты) Обновление и написание технической документации. Комплекс документов, в которых подробно описываются технические характеристики и потребительские качества ПО, а также сведения о процессе его разработки, применения и сопровождения. Подготовка документации на программное обеспечение является очень важным этапом процесса его разработки 4.2 Кибербезопасность Уметь отслеживать и бороться с: вредоносным ПО, которое содержит несколько файлов, которые заражены и способны причинить компьютеру вред. В первую очередь, это вирусы, повреждающие компьютерные системы либо получающие несанкционированный доступ к конфиденциальности сведений, повреждающие ее целостность фишингом, или социальной инженерией– атаки на пользователей для получения конфиденциальной информации (например, паролей от кредитных карт). Фишинг обычно представляет собой рассылку писем, похожих на сообщения от авторитетных источников, или рекламы. Главная задача, с которой отправляются фишинговые электронные письма – украсть конфиденциальные данные. 9 сталкерскими вредоносными программами – программное обеспечение, которое продается под видом легального, но при этом применяется для слежки за пользователями. бэкдорами (backdoor) – внедрение в систему для кражи хранящихся данных. Вредоносные коды могут встраиваться в программы, в аппаратную часть или в файлы, хранящиеся на компьютере. Man-in-the-Middle («человек посередине») – перехват данных в процессе их передачи от отправителя до конечных получателей. 4.3 Сетевое администрирование Уметь администрировать: Глобальные сети. Они позволяют организовать взаимодействие между абонентами на больших расстояниях. Эти сети работают на относительно низких скоростях и могут вносить значительные задержки в передачу информации. Протяженность глобальных сетей может составлять тысячи километров. Городские сети. Они позволяют взаимодействовать на территориальных образованиях меньших размеров и работают на скоростях от средних до высоких. Они меньше замедляют передачу данных, чем глобальные, но не могут обеспечить высокоскоростное взаимодействие на больших расстояниях. Протяженность городских сетей находится в пределах от нескольких километров до десятков и сотен километров. Локальные сети. Они обеспечивают наивысшую скорость обмена информацией между компьютерами. Типичная локальная сеть занимает пространство в одно здание. Протяженность локальных сетей составляет около одного километра. Их основное назначение состоит в объединении пользователей (как правило, одной компании или организации) для совместной работы. Разнообразные ОС. Уметь администрировать не только разные операционные систем, по типу Windows и Linux, но также и их 10 вариации (Windows интерфейсом и без) Server, дистрибутивы с графическим Удаленный доступ. Доскональное владение программным обеспечением, позволяющим получать удаленный доступ к компьютерам. Для этой цели используются такие приложения, как SysAid, RMS, Teamviwer, системный клиент RDP и другие. 11 5. Рассмотреть одну из этих задач и предложить решение Для создания программного обеспечения используют семь основных видов жизненных циклов. Самым распространённым является «Каскадный» 1. Подготовка (сбор и обработка требований. Предварительное планирование этапов работ, сроков, ресурсов и стоимости) 2. Проектирование (получение технических заданий, разработка спецификаций. Партнер получает документальное изложение своих требований и планы проведения работ) 3. Создание (Дизайн — получение графических макетов, визуальных форм, разработка интерфейсов. Создание индивидуального стиля. Кодирование — написание исходного кода. Тестирование — проверка программы на соответствие всем предъявляемым к ней требованиям. Документирование — передача накопленных знаний пользователям и другим разработчикам) 4. Поддержка (Внедрение — установка программного обеспечения, обучение пользователей. Сопровождение — исправление выявленных ошибок, поддержка пользователей) Создание программы состоит из нескольких ключевых этапов, начиная с анализа требований и заканчивая поддержкой и обновлением. Этот процесс включает в себя множество шагов, которые помогают обеспечить успешное выполнение проекта и достижение поставленных целей. 1. Анализ требований На первом этапе важно понять, что должна делать программа, кто её пользователи и какие задачи она решает. Это включает определение основных целей программы, анализ заинтересованных сторон и сбор требований. Требования могут быть как функциональными (основные функции программы), так и нефункциональными (скорость, масштабируемость, безопасность и т.д.). 2. Проектирование 12 После анализа требований следует этап проектирования, где создается архитектура и дизайн программы. Здесь выбирается архитектурный стиль (например, клиент-сервер или микросервисная архитектура), определяются основные компоненты и их взаимодействия. Также осуществляется проектирование базы данных, включая определение сущностей и их взаимосвязей, и создание схемы базы данных. Важной частью этого этапа является проектирование пользовательского интерфейса (UI/UX), создание макетов и прототипов интерфейса, а также определение пользовательских сценариев и взаимодействий. 3. Выбор технологий На этом этапе выбираются инструменты и технологии для разработки программы. Это включает выбор языков программирования (например, Python или JavaScript), фреймворков и библиотек (например, Django для Python или React для JavaScript), среды разработки (IDE и инструменты для разработки), а также системы контроля версий (например, Git). 4. Разработка Этап разработки включает написание и тестирование кода программы. Начинается он с настройки среды разработки, установки и настройки всех необходимых инструментов. Затем проект делится на небольшие модули, для каждого из которых пишется код и проводится юнит-тестирование. Далее следует интеграционное тестирование, проверяющее взаимодействие между модулями. Важно также документировать код, чтобы он был понятен и доступен для дальнейшей работы. 5. Тестирование Тестирование программы проводится для обеспечения её качества. Оно включает функциональное тестирование, проверяющее соответствие функциональным требованиям, и нефункциональное тестирование (производительность, безопасность, юзабилити). Регрессионное тестирование необходимо для проверки, что новые изменения не сломали существующий функционал. 6. Развертывание Подготовка программы к использованию пользователями начинается с настройки серверов и развертывания приложения на них. Также осуществляется настройка базы данных, её инициализация и заполнение. 13 Важно провести тестирование в боевых условиях на реальных данных, чтобы убедиться в работоспособности программы. 7. Поддержка и обновление После развертывания начинается этап поддержки и обновления программы. Настраиваются системы мониторинга и логирования, собирается и анализируется обратная связь от пользователей. Обнаруженные баги исправляются, внедряются новые функции и улучшения. 8. Документирование Создание документации является важной частью разработки программы. Это включает пользовательскую документацию (руководства, инструкции и справочные материалы) и техническую документацию (подробное описание архитектуры, кода и процессов). 9. Обучение пользователей Обучение пользователей эффективному использованию программы завершающий этап. Это включает создание обучающих материалов (видеоуроки, руководства и презентации) и проведение тренингов и вебинаров для обучения пользователей в реальном времени. 14 6. Какую видите тематику своей ВКР, рассмотреть и описать возможный путь решения Тематику своей работы я бы выбрал создание игры на игровом движке Unity, язык программирования - C#, а для графики, я бы выбрал Adobe Photoshop. 6.1 Концепция Концепция игры заключается в том, что главный герой, Йоко, самурай. С самого детства его подготавливали к защите своего клана и своей деревни от вражеских кланов. В один из дней на его деревню напал клан Кодзуки, который являлся властвующим и влиятельным кланом с большим количеством последователей. Это были приближенные Кодзуки, купленные наемники и его выдающаяся технология, роботы. Йоко должен будет зачистить уровни с очень быстрыми наемниками, и роботами, с молниеносной реакцией. После каждого зачищенного уровня, будет бой с приближенным Кодзуки, которые являются сильнейшими среди всех кланов Японии. В конце будет бой с самим Кодзуки, у которого будет секретное мощное оружие. В игре кроме противников, будут присутствовать жители деревни Йоко, которые подбадривают игрока на протяжении всей игры. А также аптечки, чтобы восполнять запас здоровья главного героя, разнообразные платформы и шипы двух видов, которые усложняют платформинг, и которые ограничивают игровую область. Также в игре будет присутствовать атмосферная музыка, в японском стиле, пения птиц, звуки дождя, ветра, ударов мечей и не только, а также звуки смертей, крики и звуки речи героев игры 6.2 Игровой движок Unity – это инструмент для разработки двух- и трехмерных приложений и игр, работающий под операционными системами Windows, Linux и OS X. Проект Unity3D будет состоять из нескольких сцен, на которых расположены игровые объекты с прикрепленными к ним компонентами. У каждого игрового объекта будет обязательный компонент Transform, отвечающий за расположение объекта на сцене. Помимо этого, могут быть подключены как готовые компоненты (например, Rigidbody, отвечающий за физическую симуляцию), так и пользовательские компоненты. Непосредственно программирование в Unity3D заключается в первую очередь в разработке пользовательских классов, которые подключаются к игровым объектам как компоненты. Я бы спроектировал следующие классы игрового приложения: 15 Класс Player – класс, отвечающий за поведение персонажа игрока. С помощью него определяются такие параметры игрока, как направление перемещения, удар, использование аптечек и урон врагам. Класс Health – класс, отвечающий за здоровье врагов и персонажа игрока. В нем определяются изначальное количество здоровья всех персонажей и способ отображения уровня здоровья Класс Enemy – класс, отвечающий за уничтожение врагов. В нем определяются урон, наносимый персонажу, и скорость удара. Класс Patrol – класс, отвечающий за направление и скорость движения врагов. 6.3 Среда программирования Разработка велась бы на языке программирования C# в среде разработки Visual Studio. Microsoft Visual Studio – линейка продуктов компании Microsoft, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Данные продукты позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также веб-сайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для всех платформ. Игровое приложение состояло бы из двух сцен: меню и игрового поля. Игровые объекты условно можно разделить на три категории: Персонажи (Player, Samyrai, Robot) Графический интерфейс (Canvas и вложенные объекты) Игровое поле (Background, Shipi, HP, Blocks и вложенные объекты). 6.4 Реализация игрового объекта Player Объект Player отвечает за поведение и логику персонажа игрока на игровом поле. К нему будут подключены компоненты Sprite Renderer, Box Collider 2D, Rigidbody 2D, Player Controller (Script), Attak (Script), Health S (Script) Компонент Sprite Renderer отвечает за двумерное графическое представление игрового объекта. Компонент Box Collider 2D отвечает за обработку столкновений с другими объектами. Компонент Rigidbody 2D добавляет игровому объекту физические свойства, такие как масса, скорость и ускорение. 16 Компонент Player (Script) отвечает за перемещение персонажа игрока по игровому полю. Он позволяет назначить клавиши управления персонажем, скорость и силу прыжка. Компонент Attak (Script) отвечает за количество наносимого урона врагам, дальность удара и анимацию удара. Компонент Health S (Script) отвечает за здоровье персонажа игрока. Он определяет максимальное значение здоровья (Hp). 6.5 Реализация фона и элементов Объект Background будет отвечает за отображение фона игрового приложения. К нему подключен компонент Sprite Renderer. Компонент Sprite Renderer позволяет отображать изображения в виде спрайтов (Sprites), чтобы использовать их и в 2D и в 3D сценах. 6.6 Реализация персонажей Объекты Samyrai и Robot отвечают за поведение и логику врагов на игровом поле. К нему подключены компоненты Sprite Renderer, Box Collider 2D, Rigidbody 2D, Melle Enemy (Script), Enemy Patrol (Script), Health S (Script) Компонент Sprite Renderer отвечает за двумерное графическое представление игрового объекта. Компонент Box Collider 2D отвечает за обработку столкновений с другими объектами. Компонент Rigidbody 2D добавляет игровому объекту физические свойства, такие как масса, скорость и ускорение. Компонент Melle Enemy (Script) отвечает за количество наносимого урона персонажу, дальность удара и времени для перезарядки. Компонент Enemy Patrol (Script) отвечает за область, в которой враг будет потрулировать. Компонент Health S (Script) отвечает за здоровье персонажа игрока. Он определяет максимальное значение здоровья (Hp). 6.7 Картинки и анимации Все картинки и анимации будут разработаны в Adobe Photoshop. Adobe Photoshop ([əˈdəubɪ ˈfəutəʃɔp], Эдо́уби Фотошо́п) — растровый г рафический редактор, разработанный и распространяемый фирмой Adobe Sys tems. Этот продукт является лидером рынка в области коммерческих средств редактирования растровых изображений, и наиболее известным продуктом ф ирмы Adobe. Часто эту программу называют просто Photoshop (Фотошоп). В настоящее время Photoshop доступен на платформах Mac OS X/Mac OS и 17 Microsoft Windows. Ранние версии редактора были портированы под SGI Linu x с помощью альтернативы Windows API. Вся графика будет в стиле 2D. Это вид компьютерной графики, где изображение выглядит как будто плоским. Все потому, что при рисовании используется только два измерения – ширина и высота. 2D графику можно увидеть на постерах, плакатах, афишах, в интерфейсах (например, навигация или карты), в брендбуке (логотип, декоративные узоры и др.), в мультфильмах, в инфографике, на веб-сайтах. Вся анимация будут сделаны в стиле покадровой анимации. Покадровая анимация (англ. - «Stop motion») – это техника анимации, при которой отрисовывают каждый кадр. Игра, фильм, мультфильм, созданный при помощи покадровой анимации, состоит из сотен или даже тысяч кадров, каждый из которых прорисовывается отдельно. 18 7. Анализ проделанной работы По итогу создания отчета были достигнуты следующие результаты: Систематизация знаний по технике безопасности при работе с вычислительными средствами Определение важных для меня целей от МТУСИ Нахождение определенных навыков и задач Расписано решение одной из задач Описание одной из возможных тем ВКР Подготовка отчета и работа над ВКР позволили глубже понять важность техники безопасности, целей и задач обучения, а также разработки эффективных решений в области создания компьютерных игр. 19