Разработка, управляемая функциями

редактировать

Разработка, управляемая функциями (FDD ) - это итеративная и инкрементная процесс разработки программного обеспечения. Это легкий или гибкий метод для разработки программного обеспечения. FDD объединяет в единое целое ряд признанных в отрасли передовых практик. Эти практики основаны на функциональности, которая ценится клиентом (функция ). Его основная цель - постоянно и своевременно предоставлять реальное, работающее программное обеспечение в соответствии с принципами, лежащими в основе Agile Manifesto.

Содержание
  • 1 История
  • 2 Обзор
    • 2.1 Разработка общей модели
    • 2.2 Составление списка функций
    • 2.3 Планирование по функциям
    • 2.4 Разработка по функциям
    • 2.5 Создание по функциям
  • 3 вехи
  • 4 Лучшие практики
  • 5 Метамодель (метамоделирование)
  • 6 Инструменты использовано
  • 7 См. также
  • 8 Ссылки
  • 9 Внешние ссылки
История

Первоначально FDD был разработан Джеффом Де Лука для удовлетворения особых потребностей 15 -месячный проект разработки программного обеспечения с участием 50 человек в большом сингапурском банке в 1997 году. Результатом этого стал набор из пяти процессов, охватывающих разработку общей модели и составление списков, планирование, проектирование и создание функции. На первый процесс сильно повлиял подход Питера Коада к моделированию объектов. Второй процесс включает в себя идеи Coad об использовании списка функций для управления функциональными требованиями и задачами разработки. Остальные процессы - результат опыта Джеффа Де Луки. С момента успешного использования в сингапурском проекте было несколько внедрений FDD.

Описание FDD было впервые представлено миру в главе 6 книги Питера Коада и Джеффа Де Лука «Моделирование Java в цвете с UML» в 1999 году. Позже, в книге Стивена Палмера и «Практическое руководство». Руководство по разработке, управляемой функциями (опубликовано в 2002 году), более общее описание FDD было дано отдельно от моделирования на Java.

Обзор

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

Модель процесса для FDD

Разработка общей модели

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

Составьте список функций

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

План по функциям

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

Дизайн по функции

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

Сборка по функции

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

Основные этапы

Поскольку функции небольшие, завершение функции - относительно небольшая задача. Для точной отчетности о состоянии и отслеживания проекта разработки программного обеспечения важно отмечать прогресс, достигнутый по каждой функции. Поэтому FDD определяет шесть этапов для каждой функции, которые должны выполняться последовательно. Первые три этапа выполняются во время действия Проектирование по функциям, а последние три - во время действия Создание по функциям. Для отслеживания прогресса каждой вехе назначается процент выполнения. В таблице ниже показаны этапы и процент их выполнения. В момент начала кодирования функция уже завершена на 44% (пошаговое руководство домена 1%, дизайн 40% и проверка дизайна 3% = 44%).

Таблица 1: Основные этапы
Обзор доменаДизайнПроверка дизайнаКодПроверка кодаПерейти к Сборка
1%40%3%45%10%1%
Лучшее Практики

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

  • Моделирование предметных областей . Моделирование предметной области состоит из исследования и объяснения предметной области решаемой проблемы. Результирующая объектная модель предметной области обеспечивает общую структуру для добавления функций.
  • Разработка по функциям . Любая функция, которая слишком сложна для реализации в течение двух недель, далее разбивается на более мелкие функции, пока каждая подзадача не станет достаточно маленькой, чтобы ее можно было назвать функцией. Это упрощает предоставление правильных функций и расширение или изменение системы.
  • Собственность индивидуального класса (кода) . Индивидуальное владение классом означает, что отдельные части или группы кода назначаются одному владельцу. Владелец несет ответственность за согласованность, производительность и концептуальную целостность класса.
  • Feature Teams . Специализированная команда - это небольшая, динамично сформированная команда, которая развивает небольшую деятельность. К каждому проектному решению всегда прилагается множество умов, и несколько вариантов дизайна оцениваются перед тем, как выбрать один.
  • Инспекции . Инспекции проводятся для обеспечения хорошего качества дизайна и кода, в первую очередь, путем обнаружения дефектов.
  • Управление конфигурацией . Управление конфигурацией помогает идентифицировать исходный код для всех функций, которые были завершены к настоящему времени, и поддерживать историю изменений классов по мере их улучшения функциональными группами.
  • Обычные сборки . Регулярные сборки обеспечивают наличие актуальной системы, которую можно продемонстрировать клиенту, и помогают выявить ошибки интеграции исходного кода для функций на раннем этапе.
  • Видимость прогресса и результатов . Менеджеры управляют проектом, используя частые, уместные и точные отчеты о ходе работы со всех уровней внутри и вне проекта на основе выполненной работы.
Метамодель (метамоделирование)
Модель данных процесса для FDD

Метамоделирование помогает визуализировать как процессы, так и данные метода . Это позволяет сравнивать методы, а фрагменты методов в процессе разработки методов можно легко повторно использовать. Использование этого метода соответствует стандартам UML.

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

Используемые инструменты
  • CASE Spec. CASE Spec - это коммерческий корпоративный инструмент для функционально-ориентированной разработки.
  • TechExcel DevSuite. TechExcel DevSuite - это коммерческий набор приложений, обеспечивающий функционально-ориентированную разработку.
  • FDD Tools. Проект FDD Tools направлен на создание кроссплатформенного инструментария с открытым исходным кодом, поддерживающего методологию разработки, управляемой функциями.
  • FDD Viewer. FDD Viewer - это утилита для отображения и печати парковок.
См. Также
Ссылки
  • 1. ^Коуд, П., Де Лука, Дж. (1999). Java-моделирование в цвете с помощью UML: корпоративные компоненты и процессы. Prentice Hall International. (ISBN 0-13-011510-X )
  • 2. ^Палмер, С.Р., (2002). Практическое руководство по разработке, управляемой функциями. Прентис Холл. (ISBN 0-13-067615-2 )
Внешние ссылки
Последняя правка сделана 2021-05-20 12:15:02
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru