~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 543958FEEC8EEBAE4E7307F87136BBB0__1711239480 ✰
Заголовок документа оригинал.:
✰ Extensibility - Wikipedia ✰
Заголовок документа перевод.:
✰ Расширяемость — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Extensibility ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/54/b0/543958feec8eebae4e7307f87136bbb0.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/54/b0/543958feec8eebae4e7307f87136bbb0__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 05:32:12 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 24 March 2024, at 03:18 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Расширяемость — Википедия Jump to content

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

Из Википедии, бесплатной энциклопедии

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

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

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

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

Важность [ править ]

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

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

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

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

Белый ящик [ править ]

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

Открытая коробка [ править ]

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

Стеклянный ящик [ править ]

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

Черный ящик [ править ]

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

Серый ящик [ править ]

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

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

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

Безопасность [ править ]

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

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

См. также [ править ]

Ссылки [ править ]

  1. ^ Йоханссон, Никлас и Антон Лёфгрен. Проектирование для расширяемости: практическое исследование максимизации расширяемости с помощью принципов проектирования. Np: np, nd Факультет прикладных информационных технологий Гетеборгского университета, 29 мая 2009 г. Интернет. 26 апреля 2014 г. < https://gupea.ub.gu.se/bitstream/2077/20561/1/gupea_2077_20561_1.pdf >.
  2. ^ Роуз, Маргарет. «Расширяемый». Поиск САО. Np, март 2007 г. Интернет. 27 апреля 2014 г. < http://searchsoa.techtarget.com/definition/extensible. Архивировано 6 декабря 2016 г. на Wayback Machine >.
  3. ^ Келли, Аллан. «Философия расширяемого программного обеспечения». ACCU-Профессионализм в программировании (2002): Интернет. 27 апреля 2014 г. < http://accu.org/index.php/journals/391 >.
  4. ^ Зенгер, Матиас. «1.2 Характеристики механизмов расширяемости». Абстракции языка программирования для расширяемых программных компонентов. Лозанна: Швейцарский федеральный технологический институт, 2004. Н. стр. Веб. 26 апреля 2014 г. < http://zenger.org/papers/thesis.pdf >.
  5. ^ Мартин Риттер и Бо Норрегаард Йоргенсен. «Независимо расширяемые контексты». Опубликовано в «Архитектура программного обеспечения: 4-я Европейская конференция, ECSA 2010, Копенгаген, Дания, 23-26 августа 2010 г., Материалы» . 2010. п. 327.
  6. ^ Зенгер, Матиас. «1.3 Классификация механизмов расширяемости». Абстракции языка программирования для расширяемых программных компонентов. Лозанна: Швейцарский федеральный технологический институт, 2004. Н. стр. Веб. 26 апреля 2014 г.
  7. ^ Зенгер, Матиас. «1.1.1 Многократное использование». Абстракции языка программирования для расширяемых программных компонентов. Лозанна: Швейцарский федеральный технологический институт, 2004. Н. стр. Веб. 26 апреля 2014 г.
  8. ^ Гэри МакГроу. «Безопасность программного обеспечения: построение безопасности» . .2006.стр. 9.
  9. ^ Лен Басс, Пол Клементс, Рик Казман. «Архитектура программного обеспечения на практике» . 2003. с. 339.

Внешние ссылки [ править ]

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

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 543958FEEC8EEBAE4E7307F87136BBB0__1711239480
URL1:https://en.wikipedia.org/wiki/Extensibility
Заголовок, (Title) документа по адресу, URL1:
Extensibility - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)