Программная структура
В компьютерном программировании - программная структура это абстракция , в которой программное обеспечение , обеспечивающее общую функциональность, может быть избирательно изменено дополнительным пользователем кодом, обеспечивая таким образом программное обеспечение для конкретного приложения. Он обеспечивает стандартный способ создания и развертывания приложений и представляет собой универсальную, многоразовую программную среду , которая предоставляет особую функциональность в рамках более крупной программной платформы для облегчения разработки программных приложений , продуктов и решений.
Программные рамки могут включать программы поддержки, компиляторы, библиотеки кодов, наборы инструментов и интерфейсы прикладных программ (API) , которые объединяют все различные компоненты для обеспечения разработки проекта или системы .
У каркавых изделий есть ключевые характеристики, которые отделяют их от обычных библиотек :
- Инверсия управления общей программой : в рамках, в отличие от библиотек или в стандартных пользовательских приложениях, поток управления диктуется не вызывающим абонент, а в рамках. [ 1 ] Это обычно достигается с помощью шаблона метода шаблона .
- Поведение по умолчанию : это может быть предоставлено инвариантными методами шаблона метода шаблона в абстрактном классе, который предоставляется структурой.
- Расширение : пользователь может расширить фреймворк - обычно выборочным переоценкой - или программисты могут добавить специализированный код пользователя для обеспечения конкретной функциональности. Обычно это достигается методом крюка в подкласке, который переопределяет метод шаблона в суперклассе.
- Несмодируемый код фреймворта : код фреймворта, в целом, не должен быть изменен, принимая при этом расширенные пользовательские расширения. Другими словами, пользователи могут расширить структуру, но не могут изменить свой код.
Обоснование
[ редактировать ]![]() | В этом разделе есть несколько проблем. Пожалуйста, помогите улучшить его или обсудить эти вопросы на странице разговоров . ( Узнайте, как и когда удалить эти сообщения )
|
Дизайнеры программных рамок направлены на то, чтобы облегчить разработку программного обеспечения, позволяя дизайнерам и программистам посвятить свое время удовлетворению требований программного обеспечения, а не для работы с более стандартными деталями низкого уровня предоставления рабочей системы, тем самым сокращая общее время разработки. [ 2 ] Например, команда, использующая веб -структуру для разработки банковского веб -сайта, может сосредоточиться на написании кода, особенно для банковского дела, а не на механике обработки запросов и управления государством .
Фреймворки часто добавляют к размеру программ, явление, называемое « раздувание кода ». Из-за потребностей в приложениях, управляемых клиентом, как конкурирующие, так и дополнительные рамки иногда оказываются в продукте. Кроме того, из -за сложности их API, предполагаемое сокращение общего времени развития не может быть достигнуто из -за необходимости тратить дополнительное время на обучение на использование структуры; Эта критика явно действительна, когда персонал разработчиков впервые сталкивается с особой или новой структурой. [ Цитация необходима ] Если такая структура не используется в последующих задачах о работе, время, инвестируемое в изучение структуры, может стоить дороже, чем назначенный целевой код, знакомый сотрудникам проекта; Многие программисты хранят копии полезного кода шаблона для общих потребностей.
Однако после изучения структуры будущие проекты могут быть быстрее и проще в завершении; Концепция структуры состоит в том, чтобы сделать набор решений с одним размером, а со знакомством производство кода должно логически расти. Таких претензий не предъявлено о размере кода, в конечном итоге связанного с выводом, или его относительной эффективностью и краткой. Использование любого библиотечного решения обязательно тянет в дополнениях и неиспользованных посторонних активах, если программное обеспечение не является компилятором-объектом линкера, производящего плотный (маленький, полностью контролируемый и указанный) исполняемый модуль.
Проблема продолжается, но десятилетие плюс опыта отрасли [ Цитация необходима ] показал, что наиболее эффективными структурами оказываются те, которые эволюционируют от повторного фактического инфекторизации общего кода предприятия, вместо использования общей «одноразмерной» структуры, разработанной третьими лицами для общих целей. Примером этого может быть то, как становится пользовательский интерфейс в таком пакете приложений, как офисный набор, чтобы иметь общий вид, атрибуты и методы обмена данными, как некогда разнородные приложения, превращаются в объединенные в набор, который более плотно и меньше; Более новый/развитый набор может быть продуктом, который разделяет интегральные утилиты библиотеки и пользовательские интерфейсы.
Эта тенденция в споре поднимает важную проблему о рамках. Создание элегантной структуры, по сравнению с тем, что просто решает проблему, все еще является скорее ремеслом, чем наука. «Программное обеспечение элегантности » подразумевает ясность, кратковременность и небольшие отходы (дополнительная или посторонняя функциональность, большая часть которых определена пользователем). Для тех структур, которые генерируют код, например, «элегантность» подразумевает создание кода, который является чистым и понятным для разумно осведомленного программиста (и который, следовательно, легко модифицируется), против того, который просто генерирует правильный код. Проблема элегантности заключается в том, почему относительно несколько программных рамок провели испытание временем: лучшие рамки смогли изящно развиваться в качестве основной технологии, на которой они были созданы продвинутыми. Даже там, развиваясь, многие такие пакеты сохранят унаследованные возможности, раздувая окончательное программное обеспечение, поскольку замененные методы были сохранены параллельно с более новыми методами.
Примеры
[ редактировать ]Программные рамки обычно содержат значительный код домашнего хозяйства и утилиты, чтобы помочь загрузке пользовательских приложений, но, как правило, сосредоточиться на конкретных проблемах, таких как:
- Художественный рисунок, музыкальный композиция и механический САПР [ 3 ] [ 4 ]
- Приложения финансового моделирования [ 5 ]
- Приложения моделирования системы Земли [ 6 ]
- Системы поддержки решений [ 7 ]
- Воспроизведение средств массовой информации и создание
- Веб -структура
- Промежуточное программное обеспечение
- Кактусная структура - высокоэффективные научные вычисления.
- Структура приложения - общие приложения GUI.
- Формуна архитектуры предприятия
- Oracle Прикладная структура разработки
- Laravel (PHP Framework)
- Вредоносное ПО , например, PipedReam
- Php4delphi
Архитектура
[ редактировать ]Согласно Pree, [ 8 ] Программные рамки состоят из замороженных пятен и горячих точек . Замороженные пятна определяют общую архитектуру программной системы, то есть ее основные компоненты и отношения между ними. Они остаются неизменными (замороженными) в любом экземпляре рамки применения. Горячие точки представляют те части, в которых программисты, использующие Framework, добавляют свой собственный код, чтобы добавить функциональность, специфичную для их собственного проекта.
В объектно-ориентированной среде структура состоит из абстрактных и конкретных классов . Инстанция такой структуры состоит из составления и подкласса существующих классов. [ 9 ]
Необходимая функциональность может быть реализована с использованием шаблона метода шаблона , в которой замороженные пятна известны как инвариантные методы, а горячие точки известны как варианты или методы крючка. Инвариантные методы в суперклассе обеспечивают поведение по умолчанию, в то время как методы крюка в каждом подклассе обеспечивают пользовательское поведение.
При разработке конкретной программной системы с программной структурой разработчики используют горячие точки в соответствии с конкретными потребностями и требованиями системы. Программные рамки полагаются на принцип Голливуда : «Не звоните нам, мы вам позвоним». [ 10 ] [ 11 ] Это означает, что пользовательские классы (например, новые подклассы) получают сообщения из предварительно определенных классов фреймворков. Разработчики обычно справляются с этим, внедряя суперклассные абстрактные методы .
Смотрите также
[ редактировать ]- Класс (компьютерное программирование)
- Образец разработки программного обеспечения
- Не повторяйся
- Включает в себя вызов
- Программный двигатель
Ссылки
[ редактировать ]- ^ Riehle, Dirk (2000), Рамочная разработка: подход моделирования ролей (PDF) , Швейцарский федеральный технологический институт
- ^ "Рамки" . Docforge . Архивировано с оригинала 7 октября 2018 года . Получено 15 декабря 2008 года .
- ^ Vlissides, JM; Linton, MA (1990), «Unidraw: структура для графических редакторов, специфичных для зданий», транзакции ACM в информационных системах , 8 (3): 237–268, doi : 10.1145/98188.98197 , S2CID 11248368
- ^ «Документирование структур с использованием шаблонов», языкам и приложениям - OOPSLA '92 Pres , Johnson, RE (1992) , ACM Произображение конференции по объектно -ориентированным системам программирования , 0201533723 , S2CID 604969
{{citation}}
: Cs1 Maint: дата и год ( ссылка ) - ^ Биррер, а; Eggenschwiler, T (1993), «Труды Европейской конференции по объектно-ориентированному программированию», рамки в области финансовой инженерии: отчет о опыте , Springer-Verlag , с. 21–35
- ^ Хилл, C; Deluca, C; Баладжи, V; Суарес, м; Da Silva, A (2004), «Архитектура структуры моделирования системы Земли (ESMF)» , Computing in Science and Engineering , 6 : 18–28, doi : 10.1109/mcise.2004.1255817 , s2cid 9311752
- ^ Gachet, A (2003), «Программные рамки для разработки систем поддержки принятия решений- новый компонент в классификации инструментов разработки DSS», Journal of Systems , 12 (3): 271–281, doi : 10.3166/jds.12.271- 280 , S2CID 29690836
- ^ Pree, W (1994), «Мета-шаблоны: средство для захвата основных объектно-ориентированных объектно-ориентированных дизайна», Труды 8-й Европейской конференции по объектно-ориентированному программированию , лекционные заметки в информатике, 821 , Springer-Verlag : 150 –162, Citeseerx 10.1.1.74.7935 , doi : 10.1007/bfb0052181 , ISBN 978-3-540-58202-1
- ^ Buschmann, F (1996), Ориентированная на узор программную архитектуру Том 1: Система шаблонов. Чичестер , Вайли , ISBN 978-0-471-95869-7
- ^ Larman, C (2001), Применение UML и шаблонов: введение в объектно-ориентированный анализ и дизайн и унифицированный процесс (2-е изд.), Prentice Hall , ISBN 978-0-13-092569-5
- ^ Гамма, Эрих ; Хелм, Ричард ; Джонсон, Ральф ; Vlissides, John (1994). Дизайн -шаблоны . Аддисон-Уэсли. ISBN 0-201-63361-2 .
Внешние ссылки
[ редактировать ]Словажное определение программной структуры в Wiktionary
СМИ, связанные с программными рамками в Wikimedia Commons