Расширяемость

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

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

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

Содержание

  • 1 Расширяемый дизайн
  • 2 Важность
  • 3 Классификация механизмов расширения
    • 3.1 Белый ящик
      • 3.1.1 Открытый ящик
      • 3.1.2 Стеклянный ящик
    • 3.2 Черный ящик
    • 3.3 Серый ящик
  • 4 Расширяемость и возможность повторного использования
  • 5 Безопасность
  • 6 См. Также
  • 7 Ссылки
  • 8 Внешние ссылки

Расширяемый дизайн

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

Важность

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

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

Классификация механизмов расширяемости

Есть три различных формы расширяемости программного обеспечения: расширяемость белого ящика, расширяемость серого ящика и расширяемость черного ящика, которые зависят от того, какие артефакты и как они изменяются.

Белый ящик

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

Open-Box

Изменения выполняются инвазивно в расширяемых системах open-box; то есть исходный исходный код напрямую взламывается. Для этого требуется доступный исходный код и разрешенная модификация лицензии на исходный код. Расширяемость открытого типа наиболее важна для исправления ошибок, внутреннего рефакторинга кода или создания следующей версии программного продукта.

Glass-Box

Расширяемость Glass-Box (также называемая структурами, управляемыми архитектурой) позволяет расширять программную систему доступным исходным кодом, но может не позволять изменять код. Расширения должны быть отделены от исходной системы таким образом, чтобы это не повлияло на исходную систему. Одним из примеров этой формы расширяемости являются структуры объектно-ориентированных приложений, которые достигают расширяемости обычно с помощью наследования и динамической привязки.

Черный ящик

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

Серый ящик

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

Расширяемость и возможность повторного использования

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

Безопасность

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

CGI - одно из основных средств, с помощью которых веб-серверы обеспечивают расширяемость. Некоторые люди считают сценарии CGI «огромной дырой в безопасности».

См. Также

Ссылки

Внешние ссылки

словарное определение расширяемости в Викисловаре

Последняя правка сделана 2021-05-19 10:10:53
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте