Главная страница
Навигация по странице:

  • 1.Ориентация, принципы и практика xp

  • Основными практиками XP являются

  • Рис.6. Жизненный цикл XP Особенности этой модели представлены на схеме. Основными фазами модели можно считать: «Вброс» архитектуры

  • Истории использования (User Story)

  • Планирование версии (релиза).

  • Разработка

  • Живое планирование (planning game)

  • Частая смена версий (small releases)

  • Простые проектные решения (simple design)

  • Разработка на основе тестирования (test-driven development)

  • Постоянная переработка (refactoring)

  • Программирование парами (pair programming)

  • Постоянная интеграция (continuous integration)

  • 4. Сравнение технологий msf, rup и xp

  • Таблица 2. Технологии MSF, RUP и XP

  • Аналитики

  • Программисты

  • Уточнение моделей. Тестирование изменившейся части. Тестирование системы в целом XP

  • Один из программистов (или пара)

  • Список использованной литературы

  • 1. Ориентация, принципы и практика xp методология xp


    Скачать 64.13 Kb.
    Название1. Ориентация, принципы и практика xp методология xp
    Дата11.01.2023
    Размер64.13 Kb.
    Формат файлаdocx
    Имя файлаXP.docx
    ТипРеферат
    #881847










































































    Содержание

    Введение

    1.Ориентация, принципы и практика XP

    2. Методология XP

    3. Жизненный цикл XP

    4.Сравнение технологий MSF, RUP и XP

    Заключение

    Список использованной литературы














































    Введение

    настоящее время широкое применение получают так называемые промышленные технологии создания программного продукта. Эти технологии были разработаны фирмами, накопившими большой опыт создания ПО. Технологии представлены описаниями принципов, методов, применяемых процессов и операций. Такие технологии, как правило, поддерживаются набором CASE – средств (Computer Aided System Engineering), охватывают все этапы жизненного цикла продукта и успешно применяются для решения практических задач. Но развитие технологии разработки программного обеспечения, методов моделирования, появление CASE-технологий не решило проблему определения и формализации требований к информационным системам, но способствовало возникновению нескольких основных подходов.

    В настоящее время сложность промышленных приложений и систем такова, что процесс их разработки стал практически неуправляемым. Кроме того, их развертывание на сотнях компьютеров, расположенных в разных местах, значительно раздвигает границы процесса разработки.

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

    Для успешного выполнения ИТ-проекта недостаточно выбрать эффективные технологии и средства разработки, обеспечить необходимый бюджет и найти квалифицированных разработчиков. В любой организации существуют правила и методики, по которым участники проекта (заказчики, аналитики, разработчики, тестеры, технические писатели) распределяют между собой задачи, взаимодействуют друг с другом, создают проектные артефакты (спецификации, исходный код, документацию). Эти правила могут быть четко организованными или хаотичными, быть формально документированными или существовать в головах проектной команды, но в любом случае именно их совокупность называется процессом разработки.

    Процесс – частный случай более общего понятия методологии разработки ПО. Примерами методологий являются структурное программирование или объектно-ориентированный анализ и дизайн.

    Следовательно, была выявлена острая необходимость в эффективных методологиях управления программными проектами. Они позволяют максимизировать успешность и эффективность IT‑проектов на протяжении всего жизненного цикла информационных технологий.

    Таким образом, целью данной курсовой работы является рассмотрение и изучение современных методологий моделей проектных групп.

    Объектом исследования являются модели проектных групп, а предметом – сравнение современных методологий проектных групп.

    Выполнение исследования осуществлялось с использованием методов анализа и синтеза, сравнения и обобщения, статистики.

    1.Ориентация, принципы и практика xp


    Экстремальное программирование является примером, так называемого метода «живой» разработки. Экстремальное программирование– сравнительно молодая методология разработки программных систем, основанная на постепенном улучшении системы и разработки ее очень короткими итерациями [7]. По своей сути экстремальное программирование (XP) – это одна из так называемых «гибких» методологий разработки ПО, представляющая собой небольшой набор конкретных правил, позволяющих максимально эффективно выполнять требования современной теории управления программными проектами.

    XP ориентирована на:

    • командную работу с тесными связями внутри команды и с заказчиком;

    • разработку наиболее простых работающих решений;

    • гибкое адаптивное планирование;

    • оперативную обратную связь (путем модульного и функционального тестирования).

    Основными принципами XP является разработка небольшими итерациями на основании порции требований заказчика (т.н. пользовательских историй), написание функциональных тестов до написания программного кода, постоянное общение и постоянный рефакторинг кода.

    Основными практиками XP являются:

    Планирование процесса; частые релизы; метафора системы; простая архитектура; тестирование; рефакторинг; парное программирование; коллективное владение кодом; частая интеграция; 40-часовая рабочая неделя; стандарты кодирования; тесное взаимодействие с заказчиком.

    2 .Методология XP

    Из всех гибких методологий XP – самая известная. XP стоит на четырех китах: Коммуникация, Обратная связь, Простота и Смелость. Из них следуют двенадцать практик, которым должны следовать проекты, использующие ХР. Многие из этих практик представляют собой старые проверенные техники, которые, тем не менее, уже забыты (включая большинство предсказуемых процессов). ХР не только воскрешает к жизни такие техники, но и соединяет их таким образом, что все они поддерживают и усиливают друг друга. В нем тестирование является той основой, на которой строится разработка. При этом каждый программист пишет тесты одновременно с кодом разрабатываемой системы. Эти тесты используются при постоянной интеграции и в процессе сборки системы, что дает стабильный фундамент для дальнейшей работы.

    На этом фундаменте ХР строит эволюционный процесс проектирования, основанный на реорганизации кода системы в течение каждой последующей итерации. При этом проектируется только та функциональность, которая относится к текущей итерации, а любые будущие потребности не учитываются. Получившийся в результате процесс требует от разработчиков дисциплины, и в то же время сочетает ее с высокой адаптивностью. Такое удивительное сочетание позволяет предположить, что ХР является наиболее развитой адаптивной методологией.

    Экстремальное программирование, как процесс, даёт новое дыхание давно придуманным подходам к разработке программного обеспечения. Это такие подходы как Модульное тестирование (Unit testing), Переработка кода (Refactoring), Парное программирование (Pair programming), Нормированный рабочий день (40-hour week).

    По результатам исследования, проведенного независимой компанией Spikes Cavell в Великобритании в финансовом секторе, основной причиной неудачи программных проектов является срыв сроков сдачи (75%). Так экстремальное программирование представляет возможности для гарантирования успеваемости и контроля сроков. Это достигается посредством эффективного планирования, автоматического контроля качества и формирования быстрых обратных связей, в том числе и с заказчиком .

    XP рассчитано на использование в рамках небольших команд (не более 10 программистов). Больший размер команды разрушает необходимую для успеха простоту коммуникации и делает невозможным применение многих перечисленных приемов. Достоинствами XP, если его удается применить, является большая гибкость, возможность быстро и аккуратно вносить изменения в ПО в ответ на изменения требований и отдельные пожелания заказчиков, высокое качество получающегося в результате кода и отсутствие необходимости убеждать заказчиков в том, что результат соответствует их ожиданиям. Недостатками этого подхода являются невыполнимость в таком стиле достаточно больших и сложных проектов, невозможность планировать сроки и трудоемкость проекта на достаточно долгую перспективу и четко предсказать результаты длительного проекта в терминах соотношения качества результата и затрат времени и ресурсов. Также можно отметить неприспособленность XP для тех случаев, в которых возможные решения не находятся сразу на основе ранее полученного опыта, а требуют проведения предварительных исследований.


    3. Жизненный цикл xp


    Модель жизненного цикла XP является итерационно-инкрементной моделью быстрого создания (и модификации) протопопов продукта, удовлетворяющих очередному требованию (user story). Жизненный цикл XP представлен на рис.6.



    Рис.6. Жизненный цикл XP

    Особенности этой модели представлены на схеме. Основными фазами модели можно считать:

    1. «Вброс» архитектуры – начальный этап проекта, на котором создается видение продукта, принимаются основные решения по архитектуре и применяемым технологиям. Результатом начального этапа является метафора (metaphor) системы, которая в достаточно простом и понятном команде виде должна описывать основной механизм работы системы.

    2. Истории использования (User Story) – этап сбора требований, записываемых на специальных карточках в виде сценариев выполнения отдельных функций. User Story являются требованиями для планирования очередной версии и одновременной разработки приемочных тестов (Acceptance tests) для ее проверки.

    3. Планирование версии (релиза). Проводится на собрании с участием заказчика путем выбора User Stories, которые войдут в следующую версию. Одновременно принимаются решения, связанные с реализацией версии. Цель планирования - получение оценок того, что и как можно сделать за 1-3 недели создания следующей версии продукта.

    4. Разработка проводится в соответствии с планом и включает только те функции, которые были отобраны на этапе планирования.

    5. Тестирование проводится с участием заказчика, который участвует в составлении тестов.

    6. Выпуск релиза – разработанная версия передается заказчику для использования или бета-тестирования.

    По завершению цикла делается переход на следующую итерацию разработки.

    Особенности модели жизненного цикла XP проясняют следующие принципы этого метода. Прежде всего, это принципы «живой» разработки ПО, зафиксированные в манифесте «живой» разработки:

    • Люди и их общение более важны, чем процессы и инструменты

    • Работающая программа более важна, чем исчерпывающая документация

    • Сотрудничество с заказчиком более важно, чем обсуждение деталей контракта

    • Отработка изменений более важна, чем следование планам

    Кроме того, как было выше сказано, в XP есть несколько правил (техник), характеризующих особенности модели его жизненного цикла:

    1. Живое планирование (planning game) - как можно быстрее определить объем работ, который нужно сделать до следующей версии ПО. Решение принимается на основе, в первую очередь, бизнес-приоритетов заказчика и, во-вторую, технических оценок. Планы изменяются, как только они начинают расходится с действительностью или пожеланиями заказчика.

    2. Частая смена версий (small releases) - первая работающая версия должна появиться как можно быстрее, и тут же должна начать использоваться. Следующие версии подготавливаются через достаточно короткие промежутки времени.

    3. Простые проектные решения (simple design) – в каждый момент времени система должна быть сконструирована так просто, насколько это возможно. Новые функции добавляются только после ясной просьбы об этом. Вся лишняя сложность удаляется, как только обнаруживается.

    4. Разработка на основе тестирования (test-driven development) – сначала пишутся тесты, потом реализуются модули так, чтобы тесты срабатывали. Заказчики заранее пишут тесты, демонстрирующие основные возможности системы, чтобы можно было увидеть, что система действительно заработала.

    5. Постоянная переработка (refactoring) - системы для устранения излишней сложности, увеличения понятности кода, повышения его гибкости. При этом предпочтение отдается более элегантным и гибким решениям, по сравнению с просто дающими нужный результат.

    6. Программирование парами (pair programming) - весь код пишется двумя программистами на одном компьютере, что повышает его качество (отсутствие ошибок, понятность, читаемость,…).

    7. Постоянная интеграция (continuous integration) - система собирается и проходит интеграционное тестирование как можно чаще, по несколько раз в день, каждый раз, когда пара программистов оканчивает реализацию очередной функции.

    8. 40-часоваярабочаянеделя – сверхурочная работа рассматривается как признак больших проблем в проекте. Не допускается сверхурочная работа 2 недели подряд — это истощает программистов и делает их работу значительно менее продуктивной.



    4. Сравнение технологий msf, rup и xp


    Основные особенности MSF, RUP и XP можно свести в небольшую таблицу (Таблица 2) [9]. По ней можно судить, что Rational Unified Process является хорошо сбалансированным решением для средних по размерам коллективов разработчиков, работающих с применением продуктов и технологий компании Rational. Сопровождение разработки системы и самой системы регламентируется самой методологией RUP, однако данная технология достаточно сильно ориентирована на внутрифирменные инструментальные средства.

    Extreme Programming хорошо подходит для проектных групп малого размера и для небольших систем с часто изменяемыми требованиями. Основная проблема XP – сопровождаемость. В случае текучки кадров в коллективе разработчиков значительная часть проектной информации может быть утеряна из-за практически отсутствующей документации.

    Таблица 2. Технологии MSF, RUP и XP

    Технология

    Оптимальная команда

    Соответствие стандартам

    Допустимые технологии и инструменты

    Удобство модификации и сопровождения

    Rational Unified Process

    10 – 40 чел.

    стандарты Rational

    UML и продукты Rational

    Удобно(RUP)

    Microsoft Solutions Framework

    3 – 20 чел.

    адаптируема

    любые

    Удобно(MSF+MOF)

    XP

    2 – 10 чел.

    стандарты отсутствуют

    любые

    Сложно (зависимость от конкретных участников коллектива)

    Microsoft Solutions Framework является наиболее сбалансированной технологией, ориентированной на проектные группы малых и средних размеров. MSF не накладывает никаких ограничений на используемый инструментарий и содержит рекомендации весьма общего характера. Однако, эти рекомендации могут быть использованы для построения конкретного процесса, соответствующего потребностям коллектива разработчиков.

    MSF сходна с RUP, также включает четыре фазы: анализ, проектирование, разработку, стабилизацию. Она является итерационной, предполагает использование объектно - ориентированного моделирования. MSF по сравнению с RUP в большей степени ориентирована на разработку бизнес – приложений.

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

    Как и в случае с RUP, в MSF очевидно стремление к универсальности, которое неизбежно приводит к огрублению ситуации в конкретных случаях и к необходимости словесного дополнения схемы. Недостатки моделей, основанных на раскручивающейся спирали, присущи ей в полной мере: невозможность отслеживания временных соотношений между сроками выполнения работ, трудности дополнения специфичных этапов. К тому же ориентация на всеобщность лишает модель и тех преимуществ, которые демонстрирует модель, снабженная конкретным механизмом интерпретации.

    Преимуществами XP являются:

    • простота в использовании, адаптации, обучении;

    • устойчивость к внешним факторам, таким как текучесть кадров, нехватка денег, внезапное завершение финансирования;

    • учёт изменчивости требований и кардинального пересмотра всей системы;

    • равномерная загруженность всех членов коллектива;

    • быстрое включение в работу новичков с минимальным уровнем риска;

    • эффективный контроль работоспособности разрабатываемых систем;

    • увеличение производительности разработчиков;

    • предоставление дополнительных благ членам коллектива;

    • естественный профотбор членов команды;

    • низкая степень бюрократизма;

    • широкая известность и популярность.

    От других известных методологий разработки его также отличает простота, низкая стоимость внедрения и общедоступность. По сравнению с известным процессом разработки Rational Unified Process (RUP), время интенсивного внедрения его в несколько раз меньше. Если внедрение RUP может занять от полугода до двух лет, то внедрение XP может быть выполнено в течение одного-двух месяцев. При этом сама технология RUP стоит около 600$. И это не считая сопутствующих программ, обучающего материала и повышенного требования к персоналу.

    Одним из важнейших факторов на пути к выпуску успешного программного обеспечения является минимальная инерционность группы разработчиков. Или другими словами, насколько быстро они могут среагировать на изменившиеся требования к системе, не меняя при этом распорядка дня. Проанализируем порядок действий при изменении требования с точки зрения XP и RUP.

    RUP:

    Заказчик должен подготовить документы, необходимые для внесения изменения и предоставить руководителю группы разработчиков на рассмотрение. При этом язык изложения требования должен быть строго формализованным, например Диаграмма прецедентов (Use-case diagram). После первоначального рассмотрения передать запрос менеджерам, которые в свою очередь передадут его аналитикам.

    Аналитики построят высокоуровневые модели, проведут подсчёт сложности, количество человеко-часов, необходимых на доработку, и предоставят информацию менеджерам.

    Менеджеры после очередного согласования с начальством и заказчиком распределят, в принудительном порядке, работу между программистами и тестировщиками.

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

    Тестирование моделей.

    Отдел тестирования должен внести соответствующие изменения в тест-план. После подготовки всех необходимых документов, программисты приступают к кодированию, при этом отсутствие любого члена команды грозит срывом сроков сдачи. Этот этап является самым непродолжительным, примерно 10% от всего времени на изменение.

    Уточнение моделей. Тестирование изменившейся части. Тестирование системы в целом

    XP:

    Заказчик тесно общается с разработчиками и знает, что изменения могут быть внесены достаточно просто. Поэтому он не боится предлагать внести изменения, когда это действительно необходимо. Он формирует запрос на изменение в виде истории пользователя (User story), на понятном человеческом языке.

    Эта история передаётся на всеобщее обсуждение разработчиков, которые её формализуют, делают предварительную оценку времени, необходимого для выполнения. Заказчик устанавливает её приоритетность.

    Вместе с заказчиком корректируется список историй для выполнения в рамках текущей итерации.

    Один из программистов (или пара) берёт на себя ответственность за выполнение данной истории и приступает к работе. Это может быть не тот человек, который разрабатывал эту область ранее, за счёт коллективного владения кодом.

    С помощью заказчика определяются критерии работоспособности программного исполнения истории, и пишется автоматический приёмочный тест.

    Программист разбивает историю на задачи и пишет для каждой модульные тесты (Unit test).

    Программист кодирует каждую задачу и добивается выполнения всех тестов. Далее идёт проверка работоспособности истории с помощью приёмочных тестов. При этом работоспособность всей системы контролируется автоматически посредством ранее написанных тестов [10].

    Так, при работе по XP основное внимание сосредоточенно вокруг заказчика и разработчика. Это позволяет избежать неточностей понимания и постановки задачи. Мелочи и неточности, а также несвоевременно внесённые изменения, в совокупности, представляют почву для провала проекта. Программист уверен в своих действиях и работоспособности системы за счёт постоянной обратной связи с системой (автоматические тесты) и с заказчиком (быстрые релизы). Минимизироавнное число сопутствующих документов позволяет не только съэкономить время, но и сократить штат задействованных специалистов.

    Ролей в XP также не так много, и здесь нет ограничений на совместимость их в рамках одного человека. Так, если следовать учению Microsoft Solution Framework (MSF), то программист не может быть одновременно менеджером, тестировщиком или техническим писателем. Хотя опыт показывает обратное, что, в свою очередь, является оправданной и довольно успешной практикой. В экстремальном программировании это даже приветствуется. Так, например, опытный программист может достойно совмещать, помимо своих основных обязанностей, роль тренера, наблюдателя и менеджера. Да, действительно, в Microsoft произвели ряд дорогостоящих исследований, которые показали определённую несовместимость ролей. Разработчики же экстремального программирования, глядя глубоко в корень, постарались устранить причину этой несовместимости. Это стало возможным за счёт усиления обратных связей, неявного автоматизированного и мануального контроля.

    Есть также определённые условия, при которых достигается максимальная эффективность использования XP. Они включают следующие: группа разработчиков от двух до десяти человек, проект на срок до полугода и присутствие заказчика на месте разработки. Но это не является требованием. Большинством методик и принципов XP могут пользоваться и единичные программисты.




    Заключение


    Современные процессы, использующиеся в реальных проектах, весьма разнообразны. Каждый из них имеет свои преимущества, которые проявляются в соответствующих условиях. Даже, казалось бы, безнадежно устаревшая водопадная модель совершенно адекватна для некоторых проектов. Каждый процесс обладает также и рядом характеристик, которые ограничивают область его эффективного использования. Эта ситуация вполне типична для разработки ПО, где уже накоплено множество технологий и методик, но не существует универсального метода, оптимального для любой задачи.

    Таким образом, в данной курсовой работе были рассмотрены вопросы управления проектами по разработке программного обеспечения на основе анализа современных методологий управления проектами.

    Проанализировано состояние отрасли информационных технологий и тенденции в индустрии разработки ПО. Выявлена и обоснована острая необходимость в эффективных методологиях управления программными проектами.

    В результате анализа состояния отрасли ИТ выявлен ряд проблем, для решения которых сообществом разработчиков ПО было предложено множество методологий и инструментария.

    На примере эволюции моделей процесса разработки ПО: водопада, водоворота и спиральной – прослежено начало пути, пройденного программной инженерией. К настоящему времени сформировались два альтернативных подхода к процессу разработки ПО (предсказуемый и адаптивный) и множество методологий, реализующих эти подходы. Приведен обзор предсказуемых методологий на примере Rational Unified Process (RUP) и Microsoft Solutions Framework (MSF), и гибких – на примере Extreme Programming (XP). Были обсуждены характерные черты этих методологий. Наряду с общими деталями были выявлены также и некоторые сложные моменты процесса разработки, связанные с управлением командой, планированием, стратегией менеджмента, взаимодействием с заказчиком, жизненным циклом программного продукта, внедрением и реализацией выбранной методологии.

    Выполнен сравнительный анализ методологий RUP, XP и MSF. Были представлены преимущества использования методологий RUP, XP и MFS, а также критерии выбора методологии в зависимости от сложности проекта и размера команды разработчиков.

    На основе проведенного исследования можно сделать вывод о том, что идеальной и универсальной методологии для разработки ПО не существует. При разработке определенного ПО должен быть учтен ряд факторов, влияющих на разработку. Безусловно, некоторые модели явно превосходят другие по одним признакам, но уступают по остальным, поэтому необходимо определить, что является первостепенным по важности в данной разработке.







    Список использованной литературы


    1. A.A. Ермолаев, В. М. Дёмкин. Управление проектами по разработке программных продуктов.

    1. Microsoft Solutions Framework. Методология создания программных решений. (http://www.microsoft.com/Rus/Msdn/msf/Default.mspx)

    2. Уокер Ройс. Управление проектами по созданию программного обеспечения. Издательство "Лори", 2002 г. 424 с.

    3. Андрей Колесов. Введение в методологию Microsoft Solutions Framework http://www.bytemag.ru/Article.asp?ID=2866

    4. Rational Unified Process. Методология и технология. Материалы компании Interface Ltd. (http://www.interface.ru/home.a sp?artId=779)

    5. А. Закис. RUP - знакомый незнакомец. Открытые системы, #06/2004.

    6. БекК. Экстремальное программирование. С - Пб.: Питер, 2002, 224 с.

    7. Мартин Фаулер. Новые методологии программирования. http://www.maxkir.com/sd/newmethRUS.html.

    8. Источник: А.Гаврилов. Технологии разработки программного обеспечения – MSF

    (http://www.microsoft.com/Rus/Msdnaa/Curricula/Default.mspx)

    1. Центр Интернет – разработчиков

    (http://www.webcorp.ru/page/xpadvantages.html)


    написать администратору сайта