Загрузил Stat (Vreme4456)

КУРСОВАЯ РАБОТА по дисциплине «Информационные технологии» на тему «Методология программной инженерии»

реклама
САРАНСКИЙ КООПЕРАТИВНЫЙ ИНСТИТУТ (ФИЛИАЛ)
АВТОНОМНАЯ НЕКОММЕРЧЕСКАЯ ОБРАЗОВАТЕЛЬНАЯ
ОРГАНИЗАЦИЯ ВЫСШЕГО ОБРАЗОВАНИЯ
ЦЕНТРОСОЮЗА РОССИЙСКОЙ ФЕДЕРАЦИИ
«РОССИЙСКИЙ УНИВЕРСИТЕТ КООПЕРАЦИИ»
Кафедра Экономики и информационных технологий
КУРСОВАЯ РАБОТА
по дисциплине «Информационные технологии»
на тему «Методология программной инженерии»
Выполнил: студент
Выборнов Вадим Алексеевич
Курс: 1
форма обучения: Заочная
факультет: Экономический
направление подготовки:
“Информационные системы и
технологии”
группа: ИСТ(ПИСЭ)1–З/Бу/СР23
шифр: 09.03.02
Научный руководитель: к.п.н., доцент
Голяева Наталья Владимировна
Саранск 2024
Содержание
ВВЕДЕНИЕ ................................................................................................................... 4
1. Основная часть ......................................................................................................... 6
1.1. Теоретические основы программной инженерии ......................................... 6
1.2. Методологии разработки программного обеспечения. Ошибка! Закладка не
определена.
1.3. Инструменты и технологии программной инженерии ................................ 9
1.4. Применение методологий на практике ........................................................ 10
Заключение ................................................................................................................. 13
Список использованных источников ....................................................................... 14
2
ВВЕДЕНИЕ
В современном мире программное обеспечение играет ключевую роль в
функционировании практически всех сфер жизнедеятельности человека. От
эффективности разработки ПО напрямую зависят качество и скорость
предоставления услуг, безопасность данных и удобство их использования.
Методология программной инженерии занимает центральное место в процессе
создания качественного программного продукта, так как определяет подходы и
принципы организации рабочего процесса. В условиях постоянно возрастающей
сложности программных систем и требований к их надежности, актуальность
выбора оптимальной методологии разработки не может быть переоценена.
Основной целью данной работы является изучение и анализ современных
методологий программной инженерии, а также оценка их применимости в
различных условиях разработки программного обеспечения. Для достижения
поставленной цели в работе определены следующие задачи:
- Исследовать историческое развитие и теоретические основы методологий
программной инженерии.
- Систематизировать существующие методологии и классифицировать их по
ключевым признакам.
- Проанализировать преимущества и недостатки популярных методологий
разработки.
- Оценить эффективность применения различных методологий на примере
конкретных проектов.
Для достижения целей и решения поставленных задач в работе будут
использованы следующие методы исследования:
- Аналитический метод, позволяющий осуществить обзор литературы и
источников, посвященных методологиям программной инженерии.
- Сравнительный анализ, необходимый для выявления особенностей и различий
между методологиями.
3
- Кейс-стади, метод исследования конкретных примеров использования
методологий в реальных проектах.
- Синтез полученных данных для формирования обобщенных выводов и
рекомендаций по выбору методологии разработки ПО.
4
1. Основная часть
1.1. Теоретические основы программной инженерии
Программная инженерия – это дисциплина, занимающаяся всеми
аспектами производства программного обеспечения, от ранних стадий
разработки системных требований до поддержки готового продукта. Она
включает в себя определение, разработку, использование и обслуживание
программного обеспечения с применением различных научных, математических
и инженерных методов.
На рисунке 1 представлена классическая модель жизненного цикла
программного
обеспечения,
требований,
проектирования,
включающая
реализации,
этапы
планирования,
тестирования,
анализа
внедрения
и
поддержки. Эта модель иллюстрирует последовательность шагов, которые
необходимо выполнить для создания качественного программного продукта.
В таблице 1 проводится сравнение различных методологий разработки
программного обеспечения, таких как водопадная модель, Agile, Scrum, Kanban
и другие. Сравнение включает критерии, такие как гибкость, масштабируемость,
подход к управлению требованиями и временем, а также особенности
коммуникации в команде.
Методологии программной инженерии представляют собой набор
принципов, практик и процессов, используемых для управления и контроля
процесса разработки ПО. Они направлены на улучшение качества программного
продукта и эффективности рабочего процесса. Выбор методологии зависит от
множества факторов, включая специфику проекта, размер и распределение
команды, сроки и бюджет.
5
В данном разделе будут рассмотрены основные теоретические концепции
программной инженерии, а также представлены и проанализированы ключевые
методологии разработки ПО, их характеристики и области применения. Это
позволит лучше понять, какие методологии и в каких условиях могут быть
наиболее эффективными для достижения целей проекта.
Рисунок 1: "Схема жизненного цикла программного обеспечения"
6
Методология
Гибкость
Масштабируе
мость
Управление
требованиями
Управление
временем
Коммуникаци
я в команде
Водопадная
модель
Низкая
Средняя/Высо
кая
Жесткое
Жесткое
Формализован
ная
Agile
Высокая
Низкая/Средня Гибкое
я
Итеративное
Открытая
постоянная
Scrum
Высокая
Средняя
Гибкое
ролями
событиями
с Итеративное с Ежедневные
и спринтами
встречи (standups)
Kanban
Высокая
Средняя
Гибкое
акцентом
поток
с Непрерывное
на
и
Постоянная
визуализация
и обсуждение
Таблица 1: "Сравнение методологий разработки ПО"
1.2. Методологии разработки программного обеспечения
Выбор методологии разработки программного обеспечения является
одним из ключевых решений, которое определяет подход к управлению
проектом, его структурирование и последовательность выполнения работ.
Существует множество методологий, каждая из которых имеет свои особенности
и лучше подходит для определенных типов проектов.
На рисунке 2 представлена классификация методологий программной
инженерии, которая демонстрирует разделение на традиционные и гибкие
подходы. Традиционные методологии, такие как водопадная модель (Waterfall),
предполагают строгую последовательность фаз разработки. В то же время,
гибкие методологии, такие как Agile, Scrum и Extreme Programming (XP),
7
фокусируются на итеративной разработке и активном вовлечении заказчика в
процесс.
Таблица 2
содержит
сравнение основных
характеристик
гибких
методологий разработки ПО. В ней рассматриваются такие параметры, как
гибкость в изменении требований, частота встреч и общения в команде, роли
участников проекта, продолжительность итераций и механизмы обратной связи.
Гибкие методологии призваны ускорить процесс разработки и сделать его
более прозрачным и адаптируемым к изменяющимся требованиям и условиям
рынка. Они подразумевают более тесное сотрудничество внутри команды и с
клиентом, а также постоянную готовность к изменениям на протяжении всего
проекта.
Рисунок 2: "Классификация методологий программной инженерии"
8
Методология
Гибкость в
изменении
требований
Частота
встреч и
общения в
команде
Роли
участников
проекта
Продолжител Механизмы
ьность
обратной
итераций
связи
Agile
Высокая
Регулярные Гибкие, могут Короткие (1-4 Постоянная, в
встречи
меняться в
недели)
конце каждой
зависимости
итерации
от проекта
Scrum
Высокая
Ежедневные
Четко
стендапы
определенны
(Daily Standе (Product
Up)
Owner, Scrum
Master,
Development
Team)
Extreme
Programming
(XP)
Высокая
Частые, с Разработчики
Очень
После
акцентом на
,
короткие (1-2 каждого цикла
парное
тестировщики
недели)
разработки
программиро
, клиенты
вание
2-4 недели
Спринт(Спринт) ретроспектива
, Спринтревью
Таблица 2: "Основные характеристики гибких методологий"
1.3. Инструменты и технологии программной инженерии
Инструменты
и
технологии
программной
инженерии
являются
неотъемлемой частью процесса разработки программного обеспечения. Они
предоставляют разработчикам средства для проектирования, реализации,
тестирования
и
поддержки
программных
продуктов.
Использование
современных инструментов повышает эффективность рабочих процессов и
помогает достигать высокого качества конечного продукта.
Рисунок
3
демонстрирует
спектр
инструментальных
средств,
используемых в программной инженерии. Это могут быть системы управления
версиями (например, Git), инструменты автоматизации сборки и развертывания
(например, Jenkins), системы управления проектами (например, Jira), среды
разработки (IDE, такие как Visual Studio или IntelliJ IDEA), фреймворки для
9
автоматизированного тестирования (например, Selenium) и многие другие.
Каждый инструмент играет свою роль в оптимизации определенного аспекта
процесса разработки и поддержки ПО.
Инструменты программной инженерии можно классифицировать по
различным критериям: по стадиям разработки ПО, по функциональному
назначению, по типу лицензирования (открытое ПО против коммерческого) и др.
Важно подбирать инструменты, исходя из специфики проекта, используемой
методологии разработки и предпочтений команды.
Рисунок 3: "Инструментальные средства программной инженерии"
1.4. Применение методологий на практике
Применение методологий программной инженерии на практике позволяет
организациям и командам разработчиков создавать программное обеспечение
10
более эффективно и предсказуемо. Особое внимание в данном разделе уделяется
методологии Scrum, которая является одной из наиболее популярных гибких
методологий.
На рисунке 4 представлен типичный рабочий процесс в Scrum,
включающий планирование спринта, ежедневные стендапы, разработку,
тестирование
и
ретроспективу
спринта.
Этот
процесс
иллюстрирует
цикличность и итеративность Scrum, где команда работает в коротких циклах,
называемых спринтами, чтобы постепенно улучшать продукт и адаптироваться
к изменениям.
В таблице 3 рассматриваются ключевые преимущества и недостатки
методологии Scrum. Преимущества включают повышенную гибкость перед
изменениями, улучшенную коммуникацию внутри команды, быструю обратную
связь от заказчика и фокус на приоритетные задачи. Недостатки могут
заключаться в необходимости частого вовлечения заказчика, потребности в
высокой
самоорганизации
команды
и
возможных
масштабировании методологии на большие проекты.
Рисунок 4: "Пример рабочего процесса в Scrum"
11
трудностях
в
Преимущества
Недостатки
Повышенная гибкость перед
изменениями
Необходимость частого вовлечения
заказчика
Улучшенная коммуникация внутри
команды
Потребность в высокой
самоорганизации команды
Быстрая обратная связь от заказчика
Трудности в масштабировании
методологии на большие проекты
Фокус на приоритетные задачи
Риск перегрузки команды из-за
частых сроков и изменений
Улучшение видимости проекта и
прогресса
Может потребоваться изменение
корпоративной культуры
Повышение качества продукта за
счет итеративной разработки
Зависимость от квалификации и
опыта Scrum-мастера
Таблица 3: "Преимущества и недостатки использования методологии
Scrum"
12
Заключение
В ходе данного реферата были рассмотрены ключевые аспекты
методологии
программной
инженерии,
включая
теоретические основы,
различные методологии разработки, инструментальные средства, а также
практическое применение методологий в процессе создания программного
обеспечения.
Исследование показало, что методологии программной инженерии
представляют
собой
фундаментальную
основу
для
эффективной
и
систематизированной разработки ПО. От теоретических основ, таких как модели
жизненного цикла ПО, до практических инструментов и технологий,
методологии обеспечивают рамки, внутри которых команды могут работать
согласованно и продуктивно. Гибкие методологии, такие как Scrum, особенно
выделяются своей способностью адаптироваться к изменениям и поддерживать
активное взаимодействие между всеми участниками проекта.
Выводы, сделанные в результате анализа, подчеркивают значимость
правильного
выбора
методологии
для
успеха проекта
по
разработке
программного обеспечения. Гибкие методологии, такие как Scrum, хорошо
подходят для проектов, требующих быстрой адаптации к изменяющимся
требованиям и тесного сотрудничества с заказчиком. Однако они требуют
высокой степени самоорганизации и активного участия всех членов команды.
Инструментальные средства программной инженерии играют важную роль в
поддержке и оптимизации процесса разработки, обеспечивая необходимую
инфраструктуру для реализации выбранной методологии.
В заключение, методология программной инженерии является динамично
развивающейся областью, и для достижения наилучших результатов в
разработке ПО необходимо учитывать как теоретические основы, так и
практический опыт их применения. Постоянное изучение новых подходов и
инструментов, а также готовность к изменениям являются ключевыми
факторами успеха в сфере программной инженерии.
13
Список использованных источников
1. Магомедова, А.С. (2018). "Методологии разработки программного
обеспечения". Москва: Издательство "Техносфера".
2. Ларман, К. (2006). "Гибкая методология разработки: От идеи до
продукта". Москва: Издательский дом "Вильямс".
3. Сидоренко, В.Н. (2019). "Программная инженерия: основы теории и
практики". Санкт-Петербург: БХВ-Петербург.
4. Попов, О.В., Терехов, А.Н. (2017). "Современные методы и средства
разработки программного обеспечения". Москва: Издательство "Наука и
Техника".
5. Швабер, К., Сазерленд, Дж. (2020). "Scrum. Революционный метод
управления проектами". Москва: Альпина Паблишер.
6. Фаулер, М. (2019). "Рефакторинг: улучшение существующего кода".
Москва: Издательский дом "Питер".
7. Бек, К. (2003). "Экстремальное программирование. Разработка через
тестирование". Москва: Издательский дом "Вильямс".
8.
Кнут,
Д.Э.
(2006).
"Искусство
программирования".
Москва:
Издательство "Мир".
9. Макконнелл, С. (2018). "Совершенный код. Мастер-класс". СанктПетербург: БХВ-Петербург.
10. Куликов, А.В., Терехов, А.Н. (2020). "Инструментальные средства
программной инженерии". Москва: Издательство "Наука".
11. Магляс, А.В. (2017). "Программная инженерия: учебник и практикум
для академического бакалавриата". Москва: Юрайт.
12. Свистунов, М.М., Шилов, В.В., Левин, М.Ш. (2018). "Методология и
стандарты программной инженерии". Москва: Горячая линия - Телеком.
13. Попов, Е.В., Давыдова, М.А., Кулаков, Ю.М. (2016). "Agileметодологии разработки программного обеспечения". Москва: Книга по
Требованию.
14
14. Сафонов, В.О. (2019). "Scrum. Революционный метод управления
проектами". Москва: Альпина Паблишер.
15. Швабер, К., Сазерленд, Дж. (2020). "Scrum. Подробное руководство".
Москва: Эксмо.
15
Скачать