Скачиваний:
11
Добавлен:
09.04.2023
Размер:
218.08 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,

СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»

(СПбГУТ)

Факультет Инфокоммуникационных сетей и систем

Кафедра Защищенных систем связи

Дисциплина Защита программ и данных

ОТЧЕТ

Исследование полного жизненного цикла ПО

(тема отчета)

Направление/специальность подготовки

10.03.01 Информационная безопасность

(код и наименование направления/специальности)

Студент:

(Ф.И.О., № группы) (подпись)

1. Выбрать простую идею своей новой программы.

Программа для рисования геометрических фигур на координатной плоскости.

 2. Описать идею программы (ППО_1)

Программа должна запрашивать у пользователя исходные данные и выводить координатную плоскость с рисунками геометрической фигуры на ней.

 3. Создать концептуальную модель программы (ППО_2)

4. Создать архитектуру своей программы (ППО_3)

Язык Python

Модуль ввода – input()

Модуль вывода – print()

Объекты входных/выходных данных для задавания фигуры (int) и координат (float)

Подпрограммы для основных процессов и операций – if/else/def

Внешние подключаемые библиотеки - turtle

 5. Создать блок-схемы алгоритмов 3-х любых подпрограмм (ППО_4)

6. Написать исходный код для выбранных 3-х блок-схем (ППО_5)

import turtle

from random import choice, randint

window = turtle.Screen()

window.title("1")

window.setup(width=1.0, height=1.0)

window.bgcolor("Black")

# поле

border = turtle.Turtle()

border.speed(0)

border.begin_fill()

border.color('white')

border.goto(-800, 500)

border.goto(800, 500)

border.goto(800, -500)

border.goto(-800, -500)

border.goto(-800, 500)

border.end_fill()

border.hideturtle()

# плоскость

border = turtle.Turtle()

border.speed(0)

border.goto(0, 500)

border.pensize(2)

border.color('Black')

border.goto(0, -500)

border = turtle.Turtle()

border.speed(0)

border.goto(790, 0)

border.pensize(2)

border.color('Black')

border.goto(-790, 0)

border.hideturtle()

#выбор

figure = int(input("Выберите фигуру: 1 - Окружность; 2 - Квадрат; 3 - Прямая; 4 - Прямоугольник "))

if figure == 1:

Circle = turtle.Turtle()

x = float(input("Введите координату x окружности:"))

y = float(input("Введите координату y: окружности"))

radius = float(input("Введите радиус окружности:"))

Circle.up()

Circle.goto(x, y)

Circle.down()

Circle.pensize(3)

Circle.circle(radius)

Circle.hideturtle()

elif (figure == 2):

Square = turtle.Turtle()

x_2 = float(input("Введите координату квадрата x: "))

y_2 = float(input("Введите координату квадрата y: "))

stk = float(input("Введите сторону квадрата: "))

Square.up()

Square.goto(x_2, y_2)

Square.down()

Square.pensize(3)

Square.forward(stk)

Square.left(90)

Square.forward(stk)

Square.left(90)

Square.forward(stk)

Square.left(90)

Square.forward(stk)

Square.left(90)

Square.hideturtle()

elif (figure == 3):

Straight = turtle.Turtle()

y_3 = float(input("Введите координату прямой: "))

Straight.up()

Straight.goto(-500, y_3)

Straight.down()

Straight.pensize(3)

Straight.forward(1000)

elif (figure == 4):

t = turtle.Turtle()

x_4 = float(input("Введите координату прямоугольника x: "))

y_4 = float(input("Введите координату прямоугольника y: "))

sx = float(input("Введите длину прямоугольника: "))

sy = float(input("Введите ширину прямоугольника: "))

t.up()

t.goto(x_4, y_4)

t.down()

t.pensize(3)

def rectangle(w, h):

for i in range(2):

t.left(90)

t.fd(h)

t.left(90)

t.fd(w)

rectangle(sx, sy)

t.hideturtle()

else:

print("Введена неправильная информация")

7. Скомпилировать исходный код 3-х блок-схем в ассемблерный или байт-код (ППО_6)

Например: ассемблерный код для подпрограмм ввода данных, деления и вывода данных

Например: байт-код (CIL/JBC) для подпрограмм ввода данных, деления и вывода данных

 

8. Для каждого из представлений ППО_1–ППО_6 придумать уязвимость, которая может появиться в этом представлении

Например: для следующих представлений возможны уязвимости:

ППО_1 – Нету, оно считается идеальным

ППО_2 – Фигура выбирается числом от 1 до 4

ППО_3 – Слишком большие координаты могут не поместиться на координатную плоскость

ППО_4 – При вводе неверного символа при первом вводе программа «ломается»

ППО_5 – Если пойти не по сценарию, программа «сломается»

ППО_6 –

Санкт-Петербург 2021

Соседние файлы в предмете Защита программ и данных