Файл: I. основные сведения о предприятии ооо сах. Ком.doc

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

Категория: Не указан

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

Добавлен: 26.10.2023

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

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

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

.

GoogleChrome - браузер, разрабатываемый компанией Google на основе свободного браузера Chromium и движка Blink


ГЛАВА II. ОСНОВНАЯ ЧАСТЬ

2.1 Описание индивидуальных заданий по каждой теме программы практики в обобщенном видеФормирование у обучающихся практического опыта: —        разработки алгоритма поставленной задачи и реализации его средствами автоматизированного проектирования; —        разработки кода программного продукта на основе готовой спецификации на уровне модуля; —        использования инструментальных средств на этапе отладки программного продукта;  проведения тестирования программного модуля по определенному сценарию.Формирование первичных практических умений: —        осуществлять разработку кода программного модуля на современных языках программирования; —        создавать программу по разработанному алгоритму как отдельный модуль; —        выполнять отладку и тестирование программы на уровне модуля; —        оформлять документацию на программные средства;       использовать инструментальные средства для автоматизации оформления документации.Формирование профессиональных компетенций (ПК) профессиональных компетенций (ПК): ПК 3.1. Анализировать проектную и техническую документацию на уровне взаимодействия компонент программного обеспечения. ПК 3.2. Выполнять интеграцию модулей в программную систему. ПК 3.3. Выполнять отладку программного продукта с использованием специализированных программных средств. ПК 3.4. Осуществлять разработку тестовых наборов и тестовых сценариев. ПК 3.5. Производить инспектирование компонент программного продукта на предмет соответствия стандартам кодирования. ПК 3.6. Разрабатывать технологическую документацию.Наименование общей компетенции:ОК 1. Понимать сущность и социальную значимость своей будущей профессии, обладать высокой мотивацией к выполнению профессиональной деятельности. ОК 2. Организовывать собственную деятельность, выбирать типовые методы и способы выполнения профессиональных задач, оценивать их эффективность и качество.

ОК 3. Принимать решения в стандартных и нестандартных ситуациях и нести за них ответственность. ОК 4. Осуществлять поиск и использование информации, необходимой для эффективного выполнения профессиональных задач, профессионального и личностного развития.ОК 5. Использовать информационно-коммуникационные технологии в профессиональной деятельности ОК 6 Работать в коллективе и команде, эффективно общаться с коллегами, руководством, потребителями. ОК 6. Брать на себя ответственность за работу членов команды (подчиненных), результат выполнения заданий.ОК 7. Самостоятельно определять задачи профессионального и личностного развития, заниматься самообразованием, осознанно планировать повышение квалификации.ОК 8. Ориентироваться в условиях частой смены технологий в профессиональной деятельности.2.2 Разработка технического задания на клиент-серверное приложениеТехническое задание

  1. Общие сведения.
1.1. Название организации-заказчика: САХ.ком1.2. Название продукта разработки (проектирования): «Chat».1.3. Назначение продукта обеспечивать мгновенную связь двух и нескольких пользователей одновременно посредством передачи небольшого количества информации непосредственно друг другу.1.4. Плановые сроки начала и окончания работ: Начало работы: 16.08.2022.Окончание работы: 19.11.2022.

  1. Область применения продукта.
2.1. Процессы и структуры, в которых предполагается использование продукта разработки: посредством интернета данный чат может соединять двух людей в любой точке мира (где есть интернет). Он может применятся для личной переписки двух людей, и для небольшой группы(предприятие или офис). Количество пользователей определяется техническими характеристиками сервера.2.2. Характеристика персонала (количество, квалификация, степень готовности): для использования данного продукта требуются минимальные умения работы с ПК.

  1. Требования к продукту разработки
3.1. Требования к продукту в целом: продукт должен представлять с собой Java-приложение с пользовательским интерфейсом, написанное для работы с виртуальной машиной Java.3.1.1. Минимальные аппаратные требования Клиент:

  • Частота процессора: 1 ГГц;


  • Количество ядер: 1;

  • Разрешение экрана (минимальный размер окна): 400x300;

  • Объем оперативной памяти: 128 Мб.

  • Объём графической памяти 128 Мб

  • Соединение с интернетом.
Сервер:

  • Частота процессора: 1 ГГц;

  • Количество ядер: 2;

  • Разрешение экрана (минимальный размер окна): 300х400 пикселей;

  • Объем оперативной памяти: 512 Мб (можно и ниже, но кол-во пользователей, которых можно будет подключить к серверу, будет ограниченным).

  • Обьем графической памяти 128 Мб.

  • Соединение с интернетом.
3.2. Указание системного программного обеспечения:Java Runtime Environment 7 или выше;3.3. Указание программного обеспечения, используемого для реализации:Eclipse;3.4. Особенности реализации серверной и клиентской частей: данные передающееся от клиента к серверу и обратно – это пакеты, состоящие из номера пакета и шифрованного массива байтов, при получении дешифруются и преобразуются в примитивные типы данных.3.4.1. Форматы входных и выходных данных: входные данные – ip сервера и nickname, выходные данные – данные различного формата (текстовые и графические) от сервера (других клиентов).3.4.2. Источники данных и порядок их ввода в систему (программу), порядок вывода, хранения: при запуске сервера в верхней части экрана отображается ip сервера, по нему происходит подключение клиентов.3.5. Меры защиты информации: информация передающееся от клиента к серверу и наоборот, шифруется симметричным алгоритмом блочного шифрования “AES”, принятого в качестве стандарта шифрования правительством США в 2001г.

  1. Требования к пользовательскому интерфейсу
4.1. Общая характеристика пользовательского интерфейса: интуитивно-понятный графический интерфейс.4.2. Размещение информации на экране, дизайн экрана: за пример дизайна брались чаты на популярных ресурсах vk.com, www.twitch.tv.4.3. Особенности ввода информации пользователем, представление выходных данных: клиент общается посредством текста и графики (смайлы, картинки).Перечень сопроводительной документации: техническое заданиеДля создания клиент-серверного приложения была выбранадвухуровневая архитектура и объектно-ориентированный язык программирования – Java, для написание всей программы. Вся обработка данных происходит на сервере. Двухуровневая архитектура легко реализуема и не требует каких-либо финансовых вложений.
2.3 Разработка клиент-серверного приложения 2.3.1 Проектирование клиент-серверного приложения Структурная модель строилась так что даже после релиза можно относительно легко добавлять новый функционал.Рис. 4 . Структурная модель многопользовательского приложения «Chat»Взаимодействие серверного интерфейса и клиентов происходит через потокозащищённый HashMap содержащий всю информацию о клиентах.Наиболее значимыми являются код взаимодействия клиента и сервера. private void Handling() {while (true) {try {Socket client = server.accept();new ClientHandler(client,KeyAES).start();//Если клиент успешно установил соединение передаем его обработчику //клиентов, а также ключ которым шифруются данные.} catch (IOException e1) {e1.printStackTrace();}try {//после проверки данных в потоке засыпаем на 10 миллисекунд.Thread.sleep(10);} catch (InterruptedException e) { e.printStackTrace();}}}import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.net.Socket;import java.security.Key;import java.security.KeyFactory;import java.security.spec.X509EncodedKeySpec; import javax.crypto.Cipher;class ClientHandler extends Thread { //на сервере private final Socket client;private String name = "Неизвестный";private String value;private Cipher decrypter_AES;private Cipher encrypter_AES;private Cipher encrypter_RSA;private Key KeyAES;public ClientHandler(Socket client, Key KeyAES) { this.client = client;this.KeyAES = KeyAES;try {//создаем фабрики шифрования/расшифровки //алгоритмовdecrypter_AES = Cipher.getInstance("AES");encrypter_AES = Cipher.getInstance("AES");encrypter_RSA = Cipher.getInstance("RSA");encrypter_AES.init(Cipher.ENCRYPT_MODE, KeyAES);decrypter_AES.init(Cipher.DECRYPT_MODE, KeyAES);} catch (Exception e) {System.err.println("Ошибка шифрования");}}@Overridepublic void run() {try {DataInputStream in = new DataInputStream(client.getInputStream()); while (true) {if (in.available() > 0) { //Если в потоке есть данные читаем их.short id = in.readShort(); //id пакетаswitch (id) { // в зависимости он полученного id создаем класс с реализацией чтения и записи данных данного пакета.case 1: {MesPacket M;int size = in.readInt();int lenByte = in.readInt();byte[] b = new byte[lenByte];in.read(b);String message = new String (decrypter_AES.doFinal(b)); message = name + " : " + message;if (size > 0) {int[][] arrSmil = new int[size][2];for (int i = 0; i < size; i++) {arrSmil[i][0] = in.readInt()+3+name.length();arrSmil[i][1] = in.readInt();}M = new MesPacket(encrypter_AES.doFinal(message.getBytes()), arrSmil); } else

  1. = new MesPacket(encrypter_AES.doFinal(message.getBytes())); M.readAll();
break;}case 3: {AuthorizePacket AP =