Фабрика программного обеспечения
Эта статья включает список общих ссылок , но в ней отсутствуют достаточные соответствующие встроенные цитаты . ( Март 2022 г. ) |
Фабрика программного обеспечения — это структурированный набор связанных программных активов, который помогает создавать компьютерные программные приложения или программные компоненты в соответствии с конкретными, внешними требованиями конечного пользователя посредством процесса сборки. [1] Фабрика программного обеспечения применяет методы и принципы производства при разработке программного обеспечения, чтобы имитировать преимущества традиционного производства. Фабрики программного обеспечения обычно занимаются созданием программного обеспечения на аутсорсинге .
Описание
[ редактировать ]В разработке программного обеспечения и корпоративного архитектуре программного обеспечения фабрика программного обеспечения — это линейка программных продуктов , которая настраивает обширные инструменты, процессы и контент с использованием шаблона, основанного на схеме, для автоматизации разработки и обслуживания вариантов архетипического продукта путем адаптации, сборки и настройка компонентов на основе платформы. [2]
Поскольку для кодирования требуется инженер-программист (или, как в традиционном производстве, квалифицированный мастер), оно исключается из процесса на уровне приложения, и программное обеспечение создается путем сборки заранее определенных компонентов вместо использования традиционных IDE . Традиционное кодирование осталось только для создания новых компонентов или сервисов. Как и в традиционном производстве , инженерные работы заключаются в создании компонентов и сборе требований к системе. Конечным результатом производства на фабрике программного обеспечения является составное приложение .
Цель
[ редактировать ]Разработка приложений на основе фабрики программного обеспечения решает проблему традиционной разработки приложений, когда приложения разрабатываются и доставляются без использования преимуществ, полученных знаний и ресурсов, полученных в результате разработки аналогичных приложений. Для решения этой проблемы используется множество подходов, таких как обучение, документация и структуры; однако использование этих подходов для последовательного применения ценных знаний, ранее полученных в ходе разработки нескольких приложений, может оказаться неэффективным и подверженным ошибкам процессом.
Фабрики программного обеспечения решают эту проблему, кодируя проверенные методы разработки приложений определенного стиля в пакет интегрированных руководств, которые легко могут принять проектные группы. Разработка приложений с использованием подходящей фабрики программного обеспечения может дать множество преимуществ, таких как повышение производительности, качества и возможностей развития. [1]
Компоненты
[ редактировать ]Фабрики программного обеспечения уникальны и, следовательно, содержат уникальный набор ресурсов, предназначенных для создания приложений определенного типа. В целом, большинство фабрик программного обеспечения содержат взаимосвязанные активы следующих типов:
- Фабричная схема: классифицирует и суммирует ресурсы, используемые для создания и обслуживания системы (например, XML- документы, модели и т. д.), а также определяет отношения между ними. документ, который упорядоченно [2]
- Эталонная реализация : представляет собой пример реалистичного готового продукта, который разработчик программного обеспечения помогает создавать.
- Рекомендации по архитектуре и шаблоны : помогают объяснить выбор дизайна приложения и мотивацию этого выбора.
- Практические темы: Предоставьте процедуры и инструкции по выполнению задач.
- Рецепты: автоматизируйте процедуры в практических разделах полностью или по отдельности. Они могут помочь разработчикам выполнять рутинные задачи с минимальными затратами.
- Шаблоны : готовые элементы приложения с заполнителями для аргументов. Их можно использовать для создания исходных элементов проекта.
- Дизайнеры: предоставляют информацию, которую разработчики могут использовать для моделирования приложений на более высоком уровне абстракции.
- Многоразовый код : компоненты, реализующие общие функции или механизмы. Интеграция многократно используемого кода в фабрику программного обеспечения снижает требования к написанному вручную коду и поощряет повторное использование в разных приложениях. [1]
Разработка продукта
[ редактировать ]Создание продукта с использованием фабрики программного обеспечения включает в себя следующие действия:
- Анализ проблемы : определяет, входит ли продукт в сферу деятельности фабрики программного обеспечения. Соответствие определяет, создан ли весь продукт или его часть с использованием фабрики программного обеспечения.
- Спецификация продукта : определяет требования к продукту, обрисовывая отличия от требований к линейке продуктов, используя ряд механизмов спецификации продукта.
- Дизайн продукта : Сопоставляет различия в требованиях с различиями в архитектуре продуктовой линейки и процессе разработки для создания индивидуального процесса.
- Реализация продукта . Для разработки реализации можно использовать ряд механизмов в зависимости от степени различий.
- Развертывание продукта : включает создание или повторное использование ограничений развертывания по умолчанию и настройку необходимых ресурсов, необходимых для установки развертываемых исполняемых файлов.
- Тестирование продукта : включает в себя создание или повторное использование тестовых ресурсов (таких как тестовые примеры , наборы данных и сценарии) и применение инструментов и инструментов измерения. [2]
Преимущества
[ редактировать ]Разработка приложений с использованием фабрики программного обеспечения может дать множество преимуществ по сравнению с традиционными подходами к разработке программного обеспечения . К ним относятся следующие:
- Согласованность. Фабрики программного обеспечения можно использовать для создания нескольких экземпляров линейки программных продуктов (набора приложений, имеющих схожие функции и архитектуру), что упрощает достижение согласованности. Это упрощает управление, а также снижает затраты на обучение и обслуживание.
- Качество. Использование фабрики программного обеспечения облегчает разработчикам изучение и внедрение проверенных практик. Благодаря интеграции многократно используемого кода разработчики могут уделять больше времени работе над функциями, уникальными для каждого приложения, что снижает вероятность ошибок проектирования и дефектов кода. Приложения, разработанные с использованием фабрики программного обеспечения, также можно проверить перед развертыванием, что гарантирует соблюдение передовых практик, специфичных для фабрики, во время разработки.
- Производительность. Многие действия по разработке приложений можно оптимизировать и автоматизировать, например повторное использование программных ресурсов и создание кода на основе абстракций элементов и механизмов приложения. [1]
Эти преимущества могут принести пользу нескольким различным командам следующим образом:
Ценность для бизнеса
[ редактировать ]Бизнес-задачи могут быть упрощены, что может значительно повысить производительность пользователей. Это достигается за счет использования общих и согласованных пользовательских интерфейсов, которые уменьшают необходимость обучения конечных пользователей. Простое развертывание новых и обновленных функций и гибкие пользовательские интерфейсы также позволяют конечным пользователям выполнять задачи в соответствии с бизнес- процессом . Улучшения качества данных уменьшают необходимость обмена данными между частями приложения с помощью ALT+TAB и методов копирования и вставки. [3]
Ценность для архитекторов
[ редактировать ]Фабрики программного обеспечения могут использоваться архитекторами для разработки приложений и систем с повышенным качеством и согласованностью. Это достигается за счет возможности создания частичной реализации решения, включающей только самые критические механизмы и общие элементы. Этот тип реализации, известный как базовая архитектура, может решать проблемы проектирования и разработки, раскрывать архитектурные решения и снижать риски на ранних этапах цикла разработки. Фабрики программного обеспечения также позволяют создать последовательный и предсказуемый способ разработки, упаковки, развертывания и обновления бизнес-компонентов для обеспечения соблюдения архитектурных стандартов независимо от бизнес-логики. [3]
Ценность для разработчиков
[ редактировать ]Разработчики могут использовать фабрики программного обеспечения для повышения производительности и сокращения времени на ввод в эксплуатацию. Это достигается за счет создания высококачественной отправной точки (базовой линии) для приложений, включающей код и шаблоны. Это позволяет начинать проекты с более высокого уровня зрелости, чем традиционно разрабатываемые приложения. Многоразовые ресурсы, рекомендации и примеры помогают решать распространенные сценарии и проблемы, а автоматизация общих задач позволяет разработчикам легко применять рекомендации последовательным образом. Фабрики программного обеспечения обеспечивают уровень абстракции, который скрывает сложность приложений и разделяет задачи, позволяя разработчикам сосредоточиться на различных областях, таких как бизнес-логика, пользовательский интерфейс (UI) или сервисы приложений, без глубоких знаний инфраструктуры или базовых сервисов. Абстракция общих задач разработчиков и повышенная возможность повторного использования кода инфраструктуры могут помочь повысить производительность и удобство обслуживания. [3]
Стоимость операций
[ редактировать ]Приложения, созданные с помощью фабрик программного обеспечения, приводят к консолидации операционных усилий. Это упрощает развертывание общих бизнес-элементов и модулей, что приводит к единообразному управлению конфигурацией всего набора приложений. Приложениями можно централизованно управлять с помощью подключаемой архитектуры, которая позволяет операционным группам контролировать основные услуги. [3]
Другие подходы
[ редактировать ]Существует несколько подходов, которые представляют противоположные взгляды на концепции фабрики программного обеспечения: от инициатив, ориентированных на инструменты, до инициатив, ориентированных на процессы. Следующие подходы охватывают японские, европейские и североамериканские инициативы. [4]
Промышленная организация по разработке программного обеспечения (Япония)
[ редактировать ]При таком подходе программное обеспечение, произведенное на фабрике программного обеспечения, в первую очередь используется для систем управления, ядерных реакторов, турбин и т. д. Главной целью этого подхода является сочетание качества и производительности, гарантирующее, что рост затрат не ослабит конкурентоспособность. Существует также дополнительная цель создания среды, в которой проектирование, программирование, тестирование, установка и обслуживание могут выполняться унифицированным образом.
Ключом к повышению качества и производительности является повторное использование программного обеспечения. Доминирующие черты организационного дизайна включают решительное стремление сделать операционную работу рутинной, простой и повторяющейся, а также стандартизировать рабочие процессы.
Прообразом этого подхода может служить концепция фабрики программного обеспечения Toshiba, обозначающая подразделение программного обеспечения и процедуры компании в том виде, в каком они были в 1981 и 1987 годах соответственно.
Завод универсального программного обеспечения (Европа)
[ редактировать ]Этот подход финансировался в рамках программы Eureka и назывался Eureka Software Factory. Участниками этого проекта являются крупные европейские компании, производители компьютеров, производители программного обеспечения, научно-исследовательские институты и университеты. Целью этого подхода является предоставление технологий, стандартов, организационной поддержки и другой необходимой инфраструктуры для создания и адаптации фабрик программного обеспечения из компонентов, продаваемых независимыми поставщиками.
Целью этого подхода является создание архитектуры и структуры для интегрированной среды разработки . Фабрика универсального программного обеспечения разрабатывает компоненты и производственные среды, которые являются частью фабрик программного обеспечения, а также стандарты и рекомендации для компонентов программного обеспечения.
Опытный завод компонентов (Северная Америка)
[ редактировать ]Опытная фабрика компонентов разработана в Лаборатории разработки программного обеспечения Центра космических полетов имени Годдарда НАСА . Цели этого подхода — «понять процесс разработки программного обеспечения в производственной среде, определить влияние доступных технологий и внедрить выявленные/усовершенствованные методы обратно в процесс разработки». Подход заключался в том, чтобы экспериментировать с новыми технологиями в производственной среде, извлекать и применять опыт и данные экспериментов, а также измерять влияние с точки зрения стоимости, надежности и качества.
В этом подходе большое внимание уделяется постоянному совершенствованию посредством понимания взаимосвязи между определенными характеристиками процесса и качеством продукции. Фабрика программного обеспечения используется для сбора данных о сильных и слабых сторонах для определения базовых показателей для улучшений и сбора опыта для повторного использования в новых проектах.
Зрелая организация по разработке программного обеспечения (Северная Америка)
[ редактировать ]Этот подход, определенный моделью зрелости возможностей , предназначен для создания структуры для достижения предсказуемого, надежного и самосовершенствующегося процесса разработки программного обеспечения, который производит программное обеспечение высокого качества. Стратегия состоит из поэтапных улучшений в организации программного обеспечения, определяющих, какие процессы являются ключевыми в разработке. Программный процесс и качество программного продукта предсказуемы, поскольку они находятся в измеримых пределах.
История
[ редактировать ]- Первой компанией, принявшей этот термин, была Hitachi в 1969 году со своей Hitachi Software Works. Позже другие компании, такие как System Development Corporation в 1975 г. [5]
- NEC , Toshiba и Fujitsu в 1976 и 1977 годах следовали одному и тому же организационному подходу. [6] [7] [4]
Кусумано [8] предполагает, что существует шесть этапов для фабрик программного обеспечения:
- Базовая организационная и управленческая структура (середина 1960-х - начало 1970-х годов)
- Адаптация и стандартизация технологий (начало 1970-х - начало 1980-х годов)
- Механизация и поддержка процессов (конец 1970-х гг.)
- Усовершенствование и расширение процесса (начало 1980-х гг.)
- Интегрированная и гибкая автоматизация (середина 1980-х годов)
- Постепенное улучшение продукта/сорта (конец 1980-х гг.)
См. также
[ редактировать ]- Линия программных продуктов
- Процессы жизненного цикла программного обеспечения
- Программная инженерия
- Системная инженерия
- Процесс разработки программного обеспечения
- Автоматическое программирование
- Специализированное моделирование (DSM)
- Модельно-ориентированное проектирование (MDE)
Ссылки
[ редактировать ]- ^ Jump up to: а б с д «Фабрики программного обеспечения» . MSDN. 20 мая 2014 г.
- ^ Jump up to: а б с Гринфилд, Джек; Коротко, Кейт; Кук, Стив; Кент, Стюарт (2004). Фабрики программного обеспечения: сборка приложений с помощью шаблонов, моделей, фреймворков и инструментов . Уайли. ISBN 0-471-20284-3 .
- ^ Jump up to: а б с д «Фабрики программного обеспечения: сценарии и преимущества» . MSDN. 20 мая 2014 г.
- ^ Jump up to: а б Аэн, Иван; Бетчер, Питер; Матиассен, Ларс (1997). «Фабрика программного обеспечения: вклад и иллюзии» (PDF) . Материалы двадцатого семинара по исследованию информационных систем . Скандинавия, Осло.
- ^ Братман, Х.; Корт, Т. (1975). «Фабрика программного обеспечения». Компьютер . 8 (5): 28–37. дои : 10.1109/см.1975.218953 . S2CID 537648 .
- ^ Кусумано, Майкл А. (март 1989 г.). «Фабрика программного обеспечения: историческая интерпретация». Программное обеспечение IEEE . 6 (2): 23–30. дои : 10.1109/ms.1989.1430446 . S2CID 18982313 .
- ^ Грисс, МЛ (1993). «Повторное использование программного обеспечения: от библиотеки до завода». IBM Systems Journal . 32 (4): 548–566. CiteSeerX 10.1.1.88.2855 . дои : 10.1147/sj.324.0548 .
- ^ Кусумано, Майкл А. (1991). «Фабричные концепции и практики разработки программного обеспечения». Анналы истории вычислительной техники . 13 (1): 3–32. дои : 10.1109/mahc.1991.10004 . S2CID 7733552 .
Внешние ссылки
[ редактировать ]- Harvard Business Review Wipro Technologies: фабричная модель
- Аутсорсинг без офшоринга — цель «фабрики программного обеспечения» Пи Джей Коннолли