ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 26.10.2023
Просмотров: 72
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
ГЛАВА I. ОСНОВНЫЕ СВЕДЕНИЯ О ПРЕДПРИЯТИИ ООО «САХ.КОМ»
1.2 Организационная структура ООО «Сах.ком»
1.3 Описание аппаратного и программного обеспечения рабочего места
Мероприятия по технике безопасности и охране труда
4. Технические требования к программе
4.1 Требования к функциональным характеристикам.
4.4 Требования к составу и параметрам технических средств.
4.5 Требования к информационной и программной совместимости.
4.6 Требования к транспортировке и хранению
5. Требования к программной документации
.
GoogleChrome - браузер, разрабатываемый компанией Google на основе свободного браузера Chromium и движка Blink
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.2. Название продукта разработки (проектирования): «Chat».
1.3. Назначение продукта обеспечивать мгновенную связь двух и нескольких пользователей одновременно посредством передачи небольшого количества информации непосредственно друг другу.
1.4. Плановые сроки начала и окончания работ: Начало работы: 16.08.2022.
Окончание работы: 19.11.2022.
2.1. Процессы и структуры, в которых предполагается использование продукта разработки: посредством интернета данный чат может соединять двух людей в любой точке мира (где есть интернет). Он может применятся для личной переписки двух людей, и для небольшой группы
(предприятие или офис). Количество пользователей определяется техническими характеристиками сервера.
2.2. Характеристика персонала (количество, квалификация, степень готовности): для использования данного продукта требуются минимальные умения работы с ПК.
3.1. Требования к продукту в целом: продукт должен представлять с собой Java-приложение с пользовательским интерфейсом, написанное для работы с виртуальной машиной Java.
3.1.1. Минимальные аппаратные требования Клиент:
Сервер:
3.2. Указание системного программного обеспечения:
Java Runtime Environment 7 или выше;
3.3. Указание программного обеспечения, используемого для реализации:
Eclipse;
3.4. Особенности реализации серверной и клиентской частей: данные передающееся от клиента к серверу и обратно – это пакеты, состоящие из номера пакета и шифрованного массива байтов, при получении дешифруются и преобразуются в примитивные типы данных.
3.4.1. Форматы входных и выходных данных: входные данные – ip сервера и nickname, выходные данные – данные различного формата (текстовые и графические) от сервера (других клиентов).
3.4.2. Источники данных и порядок их ввода в систему (программу), порядок вывода, хранения: при запуске сервера в верхней части экрана отображается ip сервера, по нему происходит подключение клиентов.
3.5. Меры защиты информации: информация передающееся от клиента к серверу и наоборот, шифруется симметричным алгоритмом блочного шифрования “AES”, принятого в качестве стандарта шифрования правительством США в 2001г.
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("Ошибка шифрования");
}
}
@Override
public 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
break;
}
case 3: {
AuthorizePacket AP =
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.2. Название продукта разработки (проектирования): «Chat».
1.3. Назначение продукта обеспечивать мгновенную связь двух и нескольких пользователей одновременно посредством передачи небольшого количества информации непосредственно друг другу.
1.4. Плановые сроки начала и окончания работ: Начало работы: 16.08.2022.
Окончание работы: 19.11.2022.
-
Область применения продукта.
2.1. Процессы и структуры, в которых предполагается использование продукта разработки: посредством интернета данный чат может соединять двух людей в любой точке мира (где есть интернет). Он может применятся для личной переписки двух людей, и для небольшой группы
(предприятие или офис). Количество пользователей определяется техническими характеристиками сервера.
2.2. Характеристика персонала (количество, квалификация, степень готовности): для использования данного продукта требуются минимальные умения работы с ПК.
-
Требования к продукту разработки
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г.
-
Требования к пользовательскому интерфейсу
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("Ошибка шифрования");
}
}
@Override
public 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
-
= new MesPacket(encrypter_AES.doFinal(message.getBytes())); M.readAll();
break;
}
case 3: {
AuthorizePacket AP =