A Фабрика программного обеспечения представляет собой структурированный набор связанных программных активов, который помогает в создании компьютерных программных приложений или программных компонентов в соответствии с конкретными, внешние требования конечного пользователя в процессе сборки. Фабрика программного обеспечения применяет технологии и принципы производства к разработке программного обеспечения, чтобы имитировать преимущества традиционного производства. Софтверные фабрики обычно занимаются созданием программного обеспечения на стороне.
В разработке программного обеспечения и предприятие архитектура программного обеспечения, фабрика программного обеспечения - это линейка программных продуктов, которая настраивает обширные инструменты, процессы и контент с использованием шаблона на основе схемы для автоматизации разработки и поддержание вариантов архетипического продукта путем адаптации, сборки и настройки компонентов на основе фреймворка.
Поскольку для кодирования требуется инженер-программист (или аналогичные в традиции al производством, квалифицированным мастером) оно исключается из процесса на уровне приложений, а программное обеспечение создается путем сборки предопределенных компонентов вместо использования традиционных IDE. Традиционное кодирование осталось только для создания новых компонентов или сервисов. Как и в случае с традиционным производством, проектирование оставлено на создание компонентов и сбор требований к системе. Конечным результатом производства на фабрике программного обеспечения является составное приложение.
Разработка приложений на основе фабрики программного обеспечения решает проблему традиционной разработки приложений, когда приложения разрабатываются и доставляются без использования преимуществ полученные знания и активы, полученные в результате разработки аналогичных приложений. Для решения этой проблемы используются многие подходы, такие как обучение, документация и фреймворки; однако использование этих подходов для последовательного применения ценных знаний, ранее полученных при разработке нескольких приложений, может быть неэффективным и подверженным ошибкам процессом.
Фабрики программного обеспечения решают эту проблему, кодируя проверенные методы разработки приложений определенного стиля в пакет интегрированных руководств, которые легко усвоить проектным группам. Разработка приложений с использованием подходящей фабрики программного обеспечения может обеспечить множество преимуществ, таких как повышенная производительность, качество и возможности развития.
Фабрики программного обеспечения уникальны и поэтому содержат уникальный набор ресурсов, предназначенных для помощи создавать приложения определенного типа. В общем, большинство программных фабрик содержат взаимосвязанные активы следующих типов:
Создание продукта с использованием фабрики программного обеспечения включает в себя следующие действия:
Разработка приложений с использованием фабрики программного обеспечения может принести много преимуществ. подходит по сравнению с традиционными подходами к разработке программного обеспечения. К ним относятся следующие:
Эти преимущества могут принести пользу нескольким различным командам следующими способами:
Бизнес-задачи можно упростить, что может значительно повысить продуктивность пользователей. Это достигается за счет использования общих и согласованных пользовательских интерфейсов, которые снижают потребность в обучении конечных пользователей. Простое развертывание новых и обновленных функций и гибкие пользовательские интерфейсы также позволяют конечным пользователям выполнять задачи в соответствии с бизнес-процессом рабочим процессом. Повышение качества данных снижает потребность в обмене данными между частями приложения с помощью клавиш ALT + TAB и методов копирования и вставки.
Программные фабрики могут использоваться архитекторами для проектирования приложений и систем с улучшенным качеством и постоянством. Это достигается за счет возможности создания частичной реализации решения, включающего только наиболее важные механизмы и общие элементы. Этот тип реализации, известный как базовая архитектура, может решать проблемы проектирования и разработки, раскрывать архитектурные решения и снижать риски на ранних этапах цикла разработки. Фабрики программного обеспечения также позволяют создавать последовательные и предсказуемые способы разработки, упаковки, развертывания и обновления бизнес-компонентов для обеспечения соблюдения архитектурных стандартов независимо от бизнес-логики.
Разработчики могут использовать фабрики программного обеспечения для повышения производительности и сокращения времени на запуск. Это достигается за счет создания высококачественной отправной точки (базовой линии) для приложений, которая включает код и шаблоны. Это позволяет начинать проекты с более высокого уровня зрелости, чем традиционно разрабатываемые приложения. Многоразовые ресурсы, руководства и примеры помогают решать общие сценарии и проблемы, а автоматизация общих задач позволяет разработчикам легко применять рекомендации единообразными способами. Фабрики программного обеспечения обеспечивают уровень абстракции, который скрывает сложность приложений и разделяет проблемы, позволяя разработчикам сосредоточиться на различных областях, таких как бизнес-логика, пользовательский интерфейс (UI) или сервисы приложений, без глубоких знаний инфраструктуры или базовых сервисов. Абстрагирование общих задач разработчика и повышенная возможность повторного использования кода инфраструктуры могут помочь повысить производительность и удобство обслуживания.
Приложения, созданные с помощью фабрик программного обеспечения, приводят к консолидации операционных усилий. Это упрощает развертывание общих бизнес-элементов и модулей, что приводит к единообразному управлению конфигурацией для всего набора приложений. Приложениями можно централизованно управлять с помощью подключаемой архитектуры, которая позволяет операционным группам управлять базовыми сервисами.
Существует несколько подходов, которые представляют разные взгляды на концепции фабрики программного обеспечения, от инструментально-ориентированного до процесса ориентированные инициативы. Следующие подходы охватывают инициативы Японии, Европы и Северной Америки.
В соответствии с этим подходом программное обеспечение, произведенное на фабрике программного обеспечения, в основном используется для систем управления ядерными реакторами., турбины и т. д. Основными целями этого подхода являются сочетание качества с производительностью, гарантирующее, что увеличение затрат не ослабит конкурентоспособность. Существует также дополнительная цель создания среды, в которой проектирование, программирование, тестирование, установка и обслуживание могут выполняться унифицированным образом.
Ключом к повышению качества и производительности является повторное использование программного обеспечения. Доминирующие черты организационного дизайна включают в себя решительное стремление сделать рабочую работу рутинной, простой и повторяющейся, а также стандартизировать рабочие процессы.
Примером этого подхода может служить концепция фабрики программного обеспечения Toshiba, обозначающая подразделение программного обеспечения и процедуры компании, какими они были в 1981 и 1987 годах соответственно.
Этот подход был профинансирован в рамках программы Eureka и назывался Eureka Software Factory. Участниками этого проекта являются крупные европейские компании, производители компьютеров, компании-разработчики программного обеспечения, исследовательские институты и университеты. Целью этого подхода является обеспечение технологий, стандартов, организационной поддержки и другой необходимой инфраструктуры для создания и адаптации фабрик программного обеспечения из компонентов, продаваемых независимыми поставщиками.
Целью этого подхода является создание архитектуры и структуры для интегрированных сред разработки. Завод универсального программного обеспечения разрабатывает компоненты и производственные среды, которые являются частью заводов программного обеспечения, вместе со стандартами и руководствами для компонентов программного обеспечения.
Завод компонентов, основанный на опыте, разработан в Лаборатории разработки программного обеспечения в Центре космических полетов имени Годдарда НАСА. Цели этого подхода - «понять процесс разработки программного обеспечения в производственной среде, определить влияние доступных технологий и вернуть идентифицированные / уточненные методы в процесс разработки». Подход заключался в том, чтобы экспериментировать с новыми технологиями в производственной среде, извлекать и применять опыт и данные экспериментов и измерять влияние в отношении стоимости, надежности и качества.
В этом подходе большое внимание уделяется постоянному совершенствованию через понимание взаимосвязи между определенными характеристиками процесса и качествами продукта. Фабрика программного обеспечения используется для сбора данных о сильных и слабых сторонах, чтобы установить базовые параметры для улучшений и собрать опыт, который будет повторно использован в новых проектах.
Определяемый моделью зрелости возможностей, этот подход предназначен для создания структуры для достижения предсказуемой, надежной и самосовершенствующейся процесс разработки программного обеспечения, при котором создается программное обеспечение высокого качества. Стратегия состоит из пошаговых улучшений в организации программного обеспечения, определяющих, какие процессы являются ключевыми при разработке. Программный процесс и качество программного продукта предсказуемы, потому что они находятся в измеримых пределах.
Кусумано предполагает, что существует шесть этапов для фабрик программного обеспечения: