Министерство науки и высшего образования Российской Федерации ФГБОУ ВО «Кубанский государственный технологический университет» (ФГБОУ ВО «КубГТУ») Многоотраслевой институт подготовки и переподготовки специалистов Кафедра информационных систем и программирования Направление подготовки 09.03.04 Программная инженерия (код и наименование направления) Профиль Проектирование и разработка программного обеспечения (наименование профиля) КОНТРОЛЬНАЯ РАБОТА № 1 Вариант № 8 по дисциплине проектами Студент 3 Коллективная разработка и управление программными курса, шифр 19-ЗКБс-058 группа 19-ЗКБс-ПР1 Специальность 09.03.04 Программная инженерия Фамилия Голованов Имя Андрей Отчество Александрович Подпись студента Дата поступления работы Оценка Рецензент ст. преп. А. Г. Волик « » 20 22 г. Подпись Краснодар 2022 г. Содержание Введение ................................................................................................................... 3 1. Гибкая методология разработки ПО .............................................................. 4 2. Принципы гибкой разработки Agile ............................................................... 6 3. Agile Unified Process ......................................................................................... 8 3.1 Дисциплины AUP ............................................................................................. 8 3.2 Философия AUP ............................................................................................... 9 Заключение ............................................................................................................ 11 Список используемых источников ...................................................................... 12 Введение Методология управления проектами включает совокупность моделей, методов и программных продуктов, применяемых при разработке и реализации проектов различных классов и типов. Специфика проектов по разработке программных продуктов заключается в том, что результат разработки нематериален – это коллективные ментальные модели, записанные на языке программирования. Это приводит к тому, что большая часть проектов разработки программного обеспечения (ПО) завершается со срывами сроков, перерасходом бюджета, а часть проектов не завершается в принципе. Вышесказанное подтверждают исследования Standish Group, которые показали, что только 35 % проектов завершились в срок. Одной из главных задач, напрямую влияющих на эффективность разработки ПО, является выбор модели процесса разработки. Проблемой является то, что не существует единого оптимального решения. Модель должна определяться для каждого конкретного проекта и может меняться в широком диапазоне, в зависимости от масштаба, новизны и критичности проекта, распределения участников, требований заказчика. На выбор сертификации, модели что также позволяет влияет компании возможность разработчику дальнейшей получить преимущество перед конкурентами, привлечь новых заказчиков, повысить имидж организации 1. Гибкая методология разработки ПО Гибкая методология разработки ПО (AGILE) – методология, основывающаяся на цикличном методе, в котором условия и решения развиваются с помощью взаимной работы самоорганизующихся кроссфункциональных команд между собой. Благодаря Agile-методам, удается сделать процесс руководства проектами более упорядоченным. Такие проекты подразумевают под собой изучение адаптационных процессов, командной работы, самоорганизации, отчетов, а также проведения проверок. Agile-методы считаются передовыми в проектировании. предназначение – бысрый выпуск ПО высокого качества. Их Также, это бизнес-подход, связывающий процесс разработки продукта с нуждами пользователей и желаниями заказчика. Гибкая методология соотносима со всеми существующими процессами разработки, которые согласовываются с Agile Manifesto. Данный манифест создала группа, состоящая из 14 важных персон сферы ПО. В нем отображен их личный опыт о подходах, способствующих высокому качеству программного обеспечения. Рисунок 1. Методология Agile Agile-методология лишает команду риска тратить много месяцев, а то и лет на процесс, который, в конце концов, даст сбой из-за незначительного дефекта, допущенного на ранних этапах. Вместо этого, команда разработчиков напрямую сотрудничает с клиентами для того, чтобы понять их потребности и в максимально быстрые сроки сгенерировать оптимизированное, качественное решение. Главные принципы Agile Manifesto: 1. Люди и их взаимодействие более важны, чем процессы и инструментарий; 2. Продукт, который работает, важнее описанной до мельчайших деталей документации; 3. Взаимодействие с клиентом важнее уточнения деталей контракта; 4. Быть готовым к новшествам важнее, чем придерживаться первоначального плана. 2. Принципы гибкой разработки Agile Работающее ПО разрабатывается за период от 2 недель до 2 месяцев (кратки сроки предпочитаются); Главный приоритет – удовлетворение клиента способом выпускаемого непрерывно и в сроки ПО; Необходимо постоянно проводить анализ работы команды, чтобы повышать ее эффективность; Важный принцип – простота, не следует выполнять ненужную работу; Разработка проекта в кругу мотивированных сотрудников. Поддержка доверительных отношений и позитивной среды в коллективе; Прогрессом для разработчиков считается создание рабочего ПО; Благодаря гибкости процессов, возможно устойчивое развитие. Это очень важно, поскольку заказчики, разработчики и пользователи должны иметь возможность поддерживать темп на одном ритме, без каких-либо временных ограничений; Наиболее действенный способ передачи информации среди сотрудников – разговор; Скорость разработки повышается, когда команда уделяет должное внимание дизайнерскому оформлению и техническому совершенству; Наиболее требовательно к архитектуре и дизайну относятся только самоорганизующиеся команды; На протяжении всего проекта должна прослеживаться слаженная работа пользователей и разработчиков; Требования легко меняются даже на завершающих стадиях разработки. Это обеспечивает клиенту возможность быть конкурентоспособным на рынке. Рисунок 2. Принципы Agile 3. Agile Unified Process Гибкий унифицированный процесс (AUP, англ. Agile Unified Process) упрощенная версия унифицированного процесса Unified Process (UP), разработанная Скоттом Эмблером (англ. Scott Ambler). Данная методология разработки программного обеспечения соединяет в себе элементы гибких методологий и унифицированного процесса. В частности, AUP предполагает разработку через тестирование (TDD), применение гибкого моделирования (англ. Agile modeling) и рефакторинга баз данных, гибкое управление изменениями. Утверждается, что в 2011 году около одного процента проектов, выполняемых по гибким методологиям, использовали процесс AUP. Наследником AUP является подход дисциплинированной гибкой разработки (англ. Disciplined Agile Delivery), который разрабатывается с 2012 года. 3.1 Дисциплины AUP Моделирование. Выработка понимания прикладной области проекта, устройства бизнеса организации, а также выработка приемлемых решений прикладных проблем, которые требуется разрешить в рамках проекта. Реализация. Трансформация моделей в исполнимый код, его тестирование с использованием модульных тестов. Тестирование. Объективная оценка качества продукта. Поиск дефектов, проверка корректности спроектированной системы, а также её соответствия требованиям. Развертывание. Планирование процедуры развертывания системы, а также исполнение плана развертывания. Управление конфигурациями. Разграничение доступа к артефактам проекта. Контроль всех изменений и версий артефактов проекта. Управление проектом. Направление действий всех участников проекта. Управление рисками, руководство персоналом, координация заинтересованных лиц и внешних систем с целью поставки продукта с соблюдением временных и бюджетных ограничений. Организация среды. Обеспечение доступности для членов команды проекта всех необходимых ресурсов, инструкций, стандартов, документов, аппаратных и программных инструментов. 3.2 Философия AUP Члены команды сами знают свою работу. Люди не любят погружаться в изучение детальной документации. Вместо этого они предпочитают краткие инструкции и интерактивное обучение. AUP содержит короткое высокоуровневое описание процесса, ознакомления с которым достаточно для работы. Кроме того, имеется детальное описание процесса. Простота. Все аспекты процесса описываются сжато. Гибкость. AUP соответствует принципам и ценностям гибкой методологии и Agile Alliance. Фокус на высокоуровневой деятельности. Процесс описывает деятельность в рамках проекта на высоком уровне абстракции. Автор не пытается подробно описать все мелкие детали. Независимость от конкретных инструментов. AUP работает вместе с любым набором инструментов, который привычен команде. AUP может быть адаптирован для ваших личных нужд. Заключение Разработка программного обеспечения (ПО), как и любая другая техническая дисциплина, имеет дело со следующими основными проблемами: качество, стоимость и надежность. В связи с этим правильная организация процесса разработки программного обеспечения является основой достижения запланированного результата в ожидаемые сроки, с ожидаемым уровнем качества и с адекватным бюджетом Методология Agile – это семейство процессов разработки, а не единственный подход к разработке программного обеспечения. Ценности и принципы Agile методологии закреплены в документе ‘Agile Manifesto’. Agile не включает конкретных практик, а определяет ценности и принципы, которыми руководствуются успешные команды. Список используемых источников 1. Быстрая разработка программ. Принципы, примеры, практика Роберт К. Мартин, Джеймс В. Ньюкирк, Роберт С. Косс. Издательство: Вильямс. 2017 г. 704 с. 2. Гибкое управление IT-проектами. Руководство для настоящих самураев Джонатан Расмуссон. Издательство: Питер.20212 г. 272 с. 3. Революционный метод управления проектами Джефф Сазерленд. Издательство: Манн, Иванов и Фербер.2015 г . 288 с.