Разработка программных систем на основе объектного подхода. Учебно-методическое пособие к выполнению практических работ
.pdf
МИНИСТЕРСТВО ТРАНСПОРТА РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «РОССИЙСКИЙ УНИВЕРСИТЕТ ТРАНСПОРТА»
Кафедра «Информационные системы цифровой экономики»
П.В. ШАЦИОНОК, К.Э. ВРУБЛЕВСКИЙ
РАЗРАБОТКА ПРОГРАММНЫХ СИСТЕМ НА ОСНОВЕ ОБЪЕКТНОГО ПОДХОДА
Учебно-методическое пособие для бакалавров и магистров направлений:
09.03.03«Прикладная информатика»,
38.03.05«Бизнес-информатика»
Мо с к в а - 2024
УДК 004.42 Ш-326
Шационок П.В., Врублевский К.Э. Разработка программных систем на
основе объектного подхода: Учебно-методическое пособие к выполнению практических работ. – М.: РУТ (МИИТ), 2024. - 48 c.
В учебно-методическом пособии изложены основные особенности объектно-ориентированного программирования, ориентированное на написание программы, в зависимости от контекста и задачи, путем создания классов или метода с целью их повторного использования в создаваемом коде.
Приводятся требования к выполнения практических работ и курсовой работы по разработке программного приложения с использованием баз данных на основе средств Visio Studio Community.
Учебно-методическое пособие предназначено для выполнения практических работ студентов-бакалавров и магистров, обучающихся по направлениям «Прикладная информатика», «Бизнес-информатика», изучающих дисциплину: «Бизнес-ориентированные языки программирования».
Рецензент доцент кафедры «Современные технологии социальноэкономического образования» РУТ (МИИТ) кандидат экономических наук, доцент Гринчар Н.Н.
© РУТ (МИИТ), 2024
|
С о д е р ж а н и е |
стр. |
В в е д е н и е ............................................................................................. |
4 |
|
1 . П о с т а н о в к а з а д а ч и . ................................................................. |
6 |
|
2 . О б ъ е к т н о - о р и е н т и р о в а н н ы й а н а л и з и |
|
|
п р о е к т и р о в а н и е .............................................................................. |
9 |
|
3 |
. З а д а н и я д л я в ы п о л н е н и я п р а к т и ч е с к и х р а б о т ....15 |
|
3 . 1 . З а д а н и я д л я п р а к т и ч е с к о й р а б о т ы № 1 ................. |
15 |
|
3 . 2 . З а д а н и я д л я п р а к т и ч е с к о й р а б о т ы № 2 ................. |
21 |
|
3 . 3 . З а д а н и я д л я п р а к т и ч е с к о й р а б о т ы № 3 ................. |
27 |
|
4 . Р е к о м е н д а ц и и д л я в ы п о л н е н и я к ур с о в о й |
|
|
р а б о т ы ................................................................................................ |
33 |
|
5 . З а к л ю ч е н и е ................................................................................ |
47 |
|
6 . С п и с о к л и т е р а т ур ы ............................................................... |
48 |
|
В в е д е н и е
Программирование неоднородно — существуют принципы и подходы, которые позволяют писать программы по-разному в зависимости от контекста и задачи. Один из таких подходов — объектно-ориентированное программирование.
Объектно-ориентированное программирование, или ООП — это одна из парадигм разработки. Парадигмой называют набор правил и критериев, которые соблюдают разработчики при написании кода. Если представить, что код — это рецепт блюда, то парадигма — то, как рецепт оформлен в кулинарной книге. Парадигма помогает стандартизировать написание кода. Это снижает риск ошибок, ускоряет разработку и делает код более читабельным для других программистов.
Суть понятия объектно-ориентированного программирования в том, что все программы, написанные с применением этой парадигмы, состоят из объектов. Каждый объект — это определённая сущность со своими данными и набором доступных действий.
Преимущества ООП:
●В парадигме объектов легче писать код. Удобно один раз создать класс или метод, а потом его использовать. Не нужно повторно переписывать десятки строк кода. Можно пользоваться специальными рекомендациями по написанию ООП-кода — SOLID.
●Читать код гораздо проще. Даже в чужом коде обычно сразу видны конкретные объекты и методы, их удобно искать, чтобы посмотреть, что именно они делают.
●Код легче обновлять. Класс или метод достаточно изменить в одном месте, чтобы он изменился во всех наследуемых классах и объектах. Не нужно переписывать каждый объект отдельно, выискивая, где именно в коде он расположен.
●Программистам удобнее работать в команде. Разные люди могут отвечать за разные объекты и при этом пользоваться плодами трудов коллег.
●Код можно переиспользовать. Один раз написанный класс или объект можно затем переносить в другие проекты. Достаточно однажды написать объект
-4 -
«Кнопка заказа» и потом можно вставлять его в почти неизменном виде в разные каталоги товаров и мобильные приложения.
● Шаблоны проектирования. Именно на базе ООП построены готовые решения для взаимодействия классов друг с другом, которые позволяют не писать этот код с нуля, а взять шаблон.
Недостатки ООП:
●Сложность в освоении. ООП сложнее, чем функциональное программирование. Для написания кода в этой парадигме нужно знать гораздо больше. Поэтому перед созданием первой рабочей программы придётся освоить много информации: разобраться в классах и наследовании, научиться писать публичные и внутренние функции, изучить способы взаимодействия объектов между собой.
●Громоздкость. Там, где в функциональном программировании хватит одной функции, в ООП нужно создать класс, объект, методы и атрибуты. Для больших программ это плюс, так как структура будет понятной, а для маленьких может оказаться лишней тратой времени.
●Низкая производительность. Объекты потребляют больше памяти, чем простые функции и переменные. Скорость компиляции от этого тоже страдает.
Целями освоения учебной дисциплины являются формирование у обучающихся компетенций, связанных с использованием теоретических знаний и практических навыков к анализу и разработке программных систем в предметной области своей профессиональной деятельности на основе объектного подхода; способность студентов разрабатывать компьютерные модели реальных систем, облегчить написание больших, сложных программ, над которыми трудятся группы разработчиков.
.
- 5 -
1 . П о с т а н о в к а за д ач и .
Основное задание:
Создать программу реализующую обработку данных введенных пользователем по следующим алгоритмам:
1)авторизация пользователя программы;
2)запись набора введенных пользователем данных в базы данных;
3)отбор данных (вводятся пользователем) с последующей сортировкой по указанным признакам (по вариантам); отбор и сортировка должны реализовываться средствами SQL-запросов;
4)вывод всех элементов массива в алфавитном порядке;
5)просмотр списка зарегистрированных пользователей.
Дополнительное задание:
Создать программу реализующую обработку данных введенных пользователем по следующим алгоритмам:
1)Регистрация новых пользователей программы (роль – гость, через форму регистрации). Имя входа нового пользователя не должно совпадать с существующими. При регистрации пароль должен отвечать следующим требованиям:
a)минимум 6 символов,
b)минимум 1 прописная буква,
c)минимум 1 цифра,
d)минимум один символ из набора: ! @ # $ % ^.
2)Углубленная проработка предметной области:
a)дополнительные таблицы в БД,
b)реализация дополнительных SQL-запросов.
3)Изменение данных зарегистрированных пользователей (администратором).
4)В качестве логотипа программы использовать свои инициалы, цвет формы авторизации код RGB (255 – порядковый номер по списку группы, 1 цифра варианта, 2 цифра варианта).
Требования к программе:
-6 -
1)Начальная форма приложения должна содержать 2 вкладки (авторизация и регистрация), на каждой из которых 2 поля для ввода данных, на вкладке авторизации – кнопку по которой запускается процесс авторизации (при успехе – переход на основную рабочую форму приложения) пользователя,
ана вкладке регистрации – кнопку для регистрации нового пользователя(гостя)(дополнительно).
2)Заголовок основной формы: ФИО студента и номер группы + имя текущего пользователя + его роль, заголовок формы с выводом результата действий
– по названию действия («Результат обработки», «Список группы» и т.д.). Реализовать возможность смены пользователя – кнопка выход на основной форме, при нажатии которой происходит закрытие основной формы и переход на начальную форму(дополнительно).
3)Активность элементов на основной форме определяется ролью авторизованного пользователя:
а) гость – только просмотр списка группы; б) пользователь – просмотр списка группы, добавление студентов,
выполнение обработки данных; в) администратор – просмотр списка группы, добавление студентов,
выполнение обработки данных, просмотр и редактирование списка пользователей.
4)Результат выполнения каждого из действий выводится на новой форме, имеющей табличное поле для вывода результата и кнопку ОК, реализующей закрытие формы. Предусмотреть блокирование основной формы до закрытия форм с выводом результатов. На форме демонстрирующей все текущие элементы массива предусмотреть возможность редактирования и удаления записей базы данных (дополнительно). Реализовать программу с использованием трех (не более) динамических форм(дополнительно).
5)Для хранения данных использовать базы данных, для передачи данных между объектами-формами использовать SQL-запросы.
6)Для ввода полей с ограниченным набором значений(пол, основа обучения) использовать элемент comboBox, для даты рождения – dateTimePicker.
7)Предусмотреть проверку введенных пользователем данных с генерацией
-7 -
сообщения об ошибке в случае необходимости. Обязательна проверка на уникальность № студенческого билета.
8)Обеспечить базовое наполнение базы данных 10 записями студентов и 3 записями пользователей (по одному на каждую роль).
9)Программа должна осуществлять проверку соответствия учетных данных нового пользователя установленным требованиям.
По итогам составления программ подготовить и сдать курсовую работу по разработке программного приложения с использованием баз данных.
- 8 -
2 . О б ъ е к т н о - о р и е н т и р о ва н н ы й а н а л и з и
пр о е к т и р о ва н и е
1.Основные понятия, терминология и цель (результат) ОО анализа
В коде, написанном по парадигме ООП, выделяют четыре основных элемента:
1.Объект. Это часть кода, которая описывает элемент с конкретными характеристиками и функциями. Карточка товара в каталоге интернет-магазина — это объект. Кнопка «заказать» — тоже.
2.Класс. Это шаблон, на базе которого можно построить объект в программировании. Например, у интернет-магазина может быть класс «Карточка товара», который описывает общую структуру всех карточек. И уже из него создаются конкретные карточки — объекты.
Классы могут наследоваться друг от друга. Например, есть общий класс «Карточка товара» и вложенные классы, или подклассы: «Карточка бытовой техники», «Карточка ноутбука», «Карточка смартфон;а». Подкласс берёт свойства из родительского класса, например, цену товара, количество штук на складе или производителя. При этом имеет свои свойства, например, диагональ дисплея для «Карточки ноутбука» или количество сим-карт для «Карточки смартфона».
3.Метод. Это функция внутри объекта или класса, которая позволяет взаимодействовать с ним или другой частью кода. Например, для карточки товара метод может:
● заполнить карточку конкретного объекта нужной информацией; ● обновлять количество товара в наличии, сверяясь с БД; ● сравнивать два товара между собой; ● предлагать купить похожие товары.
4.Атрибут.
Характеристики объекта в программировании — например, цена, производитель или объём оперативной памяти. В классе прописывают, что такие атрибуты есть, а в объектах с помощью методов заполняют эти атрибуты данными
(см. рис. 2.1).
- 9 -
Класс
Объект |
Объект |
Объект |
|
|
Методы |
|
Атрибуты |
|
|
|
Рис. 2.1. Схема взаимосвязи объектов ООП.
2. Инкапсуляция Вся информация, которая нужна для работы конкретного объекта, должна
храниться внутри этого объекта. Если нужно вносить изменения, методы для этого тоже должны лежать в самом объекте — посторонние объекты и классы этого делать не могут. Для внешних объектов доступны только публичные атрибуты и методы.
Например, метод для внесения данных в карточку товара должен обязательно быть прописан в классе «Карточка товара». А не в классе «Корзина» или «Каталог товаров».
Такой принцип обеспечивает безопасность и не даёт повредить данные внутри какого-то класса со стороны. Ещё он помогает избежать случайных зависимостей, когда из-за изменения одного объекта что-то ломается в другом.
3. Наследование В этом принципе — вся суть объектно-ориентированного
программирования. Разработчик создаёт:
●Класс с определёнными свойствами;
●Подкласс на его основе, который берёт свойства класса и добавляет свои;
-10 -
