Разработка семейства продуктов ( PFE ), также известная как разработка линейки продуктов , основана на идеях « инженерии предметной области », созданной Институтом программной инженерии , термин, введенный Джеймсом Нейборсом в его диссертации 1980 [1] в Калифорнийском университете. , Ирвин . Линии программных продуктов довольно распространены в нашей повседневной жизни, но прежде чем можно будет успешно создать семейство продуктов, необходимо пройти обширный процесс. Этот процесс известен как разработка семейства продуктов.
Инжиниринг продуктового семейства можно определить как метод, который создает базовую архитектуру продуктовой платформы организации . Он обеспечивает архитектуру, основанную на общности, а также на запланированных изменениях. Различные варианты продуктов могут быть производными от основного семейства продуктов, что дает возможность повторно использовать и дифференцировать продукты в этом семействе. Разработка семейства продуктов концептуально аналогична широко распространенному использованию автомобильных платформ в автомобильной промышленности.
Разработка семейств продуктов - это относительно новый подход к созданию новых продуктов. Он фокусируется на процессе разработки новых продуктов таким образом, чтобы можно было повторно использовать компоненты продукта и применять вариативность с меньшими затратами и временем. Разработка семейства продуктов - это максимально возможное повторное использование компонентов и структур.
Несколько исследований доказали, что использование инженерного подхода к семейству продуктов для разработки продуктов может иметь несколько преимуществ (Carnegie Mellon (SEI), 2003). Вот список некоторых из них:
- Более высокая производительность
- Более высокое качество
- Более быстрый вывод на рынок
- Снижение потребности в рабочей силе
Упомянутый ниже чехол Nokia также демонстрирует эти преимущества.
Общий процесс
Процесс разработки семейства продуктов состоит из нескольких этапов. Три основных этапа:
- Этап 1. Управление продуктом
- Фаза 2: доменная инженерия
- Этап 3: Разработка продукта
Процесс был смоделирован на более высоком уровне абстракции. Это имеет то преимущество, что его можно применять ко всем типам продуктовых линеек и семейств, а не только к программному обеспечению . Модель применима к любому семейству продуктов. На рисунке 1 (ниже) показана модель всего процесса. Ниже процесс подробно описан. Описание процесса содержит подробное описание действий и используемых важных концепций. Все концепции, напечатанные курсивом, поясняются в таблице 1.
Этап 1: управление продуктом
Первый этап - это запуск всего процесса. На этом этапе определяются некоторые важные аспекты, особенно в том, что касается экономических аспектов. Этот этап отвечает за обрисовку рыночных стратегий и определение объема , который говорит о том, что должно, а что не должно быть в семействе продуктов.
Оцените видение бизнеса
Во время этого первого действия собирается и оценивается вся контекстная информация, имеющая отношение к определению объема линейки продуктов. Важно определить четкую рыночную стратегию и принять во внимание внешнюю рыночную информацию, например, запросы потребителей. Мероприятие должно предоставить контекстный документ , содержащий руководящие принципы , ограничения и стратегию продукта .
Определить объем продуктовой линейки
Методы определения объема применяются для определения того, какие аспекты входят в объем. Это основано на предыдущем шаге процесса, на котором были учтены внешние факторы. Результатом является описание портфеля продуктов , которое включает список текущих и будущих продуктов, а также дорожную карту продукта .
Можно спорить о том, является ли фаза 1, управление продуктом, частью процесса разработки семейства продуктов, потому что ее можно рассматривать как отдельный бизнес-процесс, который больше сфокусирован на аспектах управления, а не на аспекте продукта. Однако фаза 2 требует некоторых важных входных данных с этой фазы, так как на этом этапе определяется большая часть объема работ. Таким образом, с этой точки зрения важно включить фазу управления продуктом (фаза 1) во весь процесс в качестве основы для процесса разработки предметной области.
Фаза 2: доменная инженерия
На этапах разработки предметной области собираются переменные и общие требования для всей линейки продуктов. Цель - создать платформу многоразового использования. Результатом этого этапа является набор общих и переменных требований для всех продуктов в линейке продуктов.
Анализировать требования к домену
Это действие включает в себя все действия по анализу предметной области с точки зрения требований концепции. Требования распределены по категориям и разделены на два новых вида деятельности. Результатом является документ с анализом предметной области .
Как видно на рисунке 1, процесс определения общих требований представляет собой параллельный процесс с определением переменных требований. Оба мероприятия проходят одновременно.
Определите общие требования
Включает в себя все действия по выявлению и документированию общих требований линейки продуктов, в результате чего создается документ с многоразовыми общими требованиями .
Определите переменные требования
Включает в себя все действия по выявлению и документированию переменных требований линейки продуктов, в результате чего создается документ с переменными требованиями .
Область дизайна
Этот этап процесса состоит из действий по определению эталонной архитектуры линейки продуктов. Это создает абстрактную структуру для всех продуктов в линейке продуктов.
Реализовать домен
На этом этапе создается подробный проект повторно используемых компонентов и реализация этих компонентов.
Тестовый домен
Проверяет и проверяет возможность повторного использования компонентов. Компоненты проверяются на соответствие их спецификациям. После успешного тестирования всех компонентов в различных сценариях и сценариях использования этап проектирования предметной области был завершен.
Этап 3: разработка продукта
На заключительном этапе разрабатывается продукт X. В этом продукте X используются общие черты и вариативность, присущие фазе проектирования предметной области, поэтому продукт X является производным от платформы, установленной на стадии разработки предметной области. Он в основном берет все общие требования и сходства из предыдущего этапа плюс свои собственные переменные требования. Используя базу, полученную на этапе проектирования предметной области, и индивидуальные требования этапа разработки продукта, можно создать законченный и новый продукт. После того, как продукт будет полностью протестирован и одобрен, продукт X может быть доставлен.
Определите требования к продукту
Разработка спецификации требований к отдельному продукту и повторное использование требований из предыдущего этапа.
Дизайн продукта
Все действия по созданию архитектуры продукта . Использует эталонную архитектуру из шага «область проектирования», выбирает и конфигурирует необходимые части эталонной архитектуры и включает адаптации для конкретных продуктов.
Создать продукт
В ходе этого процесса создается продукт с использованием выбранных и конфигураций повторно используемых компонентов .
Тестовый продукт
На этом этапе продукт проверяется и проверяется на соответствие его спецификациям. Отчет о тестировании содержит информацию обо всех проведенных тестах и дает обзор возможных ошибок в продукте. Если продукт на следующем шаге не будет принят, процесс вернется к «построению продукта», на Рисунке 1 это обозначено как «[неудовлетворен]».
Доставка и поддержка продукта
Последний шаг - приемка конечного продукта. Если он был успешно протестирован и утвержден как завершенный, он может быть доставлен. Если продукт не соответствует спецификациям, его необходимо отремонтировать и снова протестировать.
На следующем рисунке показан общий процесс разработки семейства продуктов, описанный выше. Это полный обзор процесса со всеми концепциями, привязанными к различным этапам.
Диаграмма данных процесса
Слева нарисован весь процесс сверху вниз. Все действия на левой стороне связаны с концепциями на правой стороне пунктирными линиями. У каждого понятия есть номер, который отражает связь с другими понятиями.
Список понятий
Ниже приводится список понятий. Большинство определений понятий взято из Pohl, Bockle, & Linden (2005), а также были добавлены некоторые новые определения.
Концепция | Определение |
---|---|
Анализ предметной области | Документ содержит анализ предметной области, с помощью которой можно разделить общие и переменные требования. |
Общие требования многоразового использования | Документ содержит требования, общие для всех продуктов в линейке продуктов. |
Различные требования | Документ содержит вывод индивидуальных требований к разным продуктам. |
Эталонная архитектура | Определяет статическое и динамическое разложение, действительное для всех продуктов линейки продуктов. Также набор общих правил, определяющих дизайн, реализацию деталей и то, как они объединяются в продукты. |
Модель изменчивости | Определяет вариативность продуктовой линейки. |
Ресурсы проектирования и реализации повторно используемых компонентов | Основные компоненты для проектирования и реализации, актуальные для всего семейства продуктов. |
Результаты теста | Результат тестов, выполненных в тестировании предметной области. |
Многоразовые тестовые артефакты | Артефакты тестирования включают план тестирования домена, тестовые примеры домена и сценарии тестовых примеров домена. |
Технические требования | Требования к конкретному товару. |
Архитектура продукта | Сравнима с эталонной архитектурой, но содержит архитектуру, специфичную для продукта. |
Запущенное приложение | Рабочее приложение, которое можно будет протестировать позже. |
Артефакты детального дизайна | К ним относятся различные типы моделей, которые фиксируют статическую и динамическую структуру каждого компонента. |
Отчет об испытаниях | Документ со всеми результатами испытаний продукта. |
Отчет о проблеме | Документ, в котором перечислены все проблемы, возникшие при тестировании продукта. |
Конечный продукт | Доставка готового продукта. |
Семейная модель | Перекрывающаяся концепция всех членов семьи со всеми субпродуктами. |
Член семьи | Концепция индивидуального продукта. |
Контекстный документ | Документ, содержащий важную информацию для определения объема; содержащий руководящие принципы, ограничения и производственную стратегию. |
Методические рекомендации | Рекомендации по рынку / бизнесу / продукту |
Ограничения | Ограничения рынка / бизнеса / продукта |
Стратегия продукта | Продуктовая стратегия в отношении рынков |
Описание продуктового портфеля | Портфолио, содержащее все доступные продукты с важными свойствами. |
Список текущих и будущих продуктов | Список всех текущих продуктов и продуктов, которые будут производиться в будущем. |
Дорожная карта продукта | Описывает особенности всех продуктов линейки продуктов и разделяет их на общие функции, которые являются частью каждого продукта, и переменные функции, которые являются только частью некоторых продуктов. |
Таблица 1: Список концепций
Пример
Есть несколько хороших примеров использования продуктовой инженерии, которые оказались весьма успешными. Абстрактная модель проектирования семейств продуктов допускает различные виды использования, большинство из которых связано с рынком бытовой электроники . Ниже приводится пример применения процесса разработки продуктовой линейки, основанный на реальном опыте Nokia.
Nokia производит разные виды продукции. Среди них - семейство продуктов для мобильных телефонов , которое в настоящее время включает от 25 до 30 новых продуктов ежегодно. Эти продукты продаются по всему миру, что требует поддержки множества различных языков и пользовательских интерфейсов. Основная проблема здесь заключается в том, что необходимо поддерживать несколько различных пользовательских интерфейсов, и поскольку новые продукты очень быстро сменяют друг друга, это следует делать как можно более эффективно. Разработка семейства продуктов позволяет создавать программное обеспечение для различных продуктов и использовать вариативность для настройки программного обеспечения для каждого мобильного телефона.
Корпус Nokia сравним с обычной линейкой программных продуктов . На первом этапе управления продуктом можно определить объем различных серий мобильных телефонов. На втором этапе, доменной инженерии , определяются требования как для семейства, так и для отдельных типов телефонов, например, серии 6100/8300. На этом этапе разрабатываются требования к программному обеспечению, которые могут служить основой для всего семейства продуктов. Это ускоряет общий процесс разработки программного обеспечения. Последний этап, разработка продукта , больше ориентирован на отдельные типы телефонов. Требования из предыдущего этапа используются для создания индивидуального программного обеспечения для типа телефона, который затем разрабатывается.
Использование линейки продуктов дало Nokia возможность увеличить производство новых моделей мобильных телефонов с 5-10 до примерно 30. Carnegie Mellon (SEI), 2006, Clements & Northrop (2003).
Смотрите также
Рекомендации
- ^ https://escholarship.org/uc/item/5687j6g6 Построение программного обеспечения с использованием компонентов, дата обращения 2021.01.09.
- Ян Бош , Разработка и использование программных архитектур: принятие и развитие подхода к линейке продуктов, ACM Press / Addison-Wesley Publishing Co., New York, NY, 2000 ISBN 978-0201674941 https://www.amazon.com/Design -Использовать-Программное обеспечение-Архитектуры-Bosch / dp / 0201674947
- Институт программной инженерии Карнеги-Меллона (SEI). Линии программных продуктов. Получено 17 февраля 2006 г. с: https://web.archive.org/web/20171005173029/http://www.sei.cmu.edu/productlines/.
- Клементс П. и Нортроп Л.М. (2003). Линии программных продуктов. Презентация Института программной инженерии Карнеги-Меллона. Получено 26 марта 2006 г. с: http://www.sei.cmu.edu/.
- Европейский институт программного обеспечения (ESI). Получено 17 февраля 2006 г. с: https://web.archive.org/web/20070203151901/http://www.esi.es/Families/famResults.html.
- Поль К., Бокле Г. и Линден Ф. ван дер (2005). Разработка программных продуктов. Берлин, Гейдельберг, Нью-Йорк: Springer-Verlag. ISBN 978-3-540-28901-2 https://www.amazon.com/Software-Product-Line-Engineering-Foundations-dp-3540243720/dp/3540243720