Logo ru.artbmxmagazine.com

Архитектура программного обеспечения как научная дисциплина

Оглавление:

Anonim

В этой статье рассматривается ряд факторов, которым должна соответствовать область знаний, чтобы ее можно было отнести к категории научной дисциплины. Проанализируйте, как Software Architecture (AS) достигает соответствия этим факторам, путем создания сообщества, которое демонстрирует научную работу и профессиональную практику. Он проводит библиографический анализ с самого начала дисциплины и основные выводы, которые определяют ее предмет изучения сегодня. И, наконец, проанализируйте уровень зрелости дисциплины с учетом экспертов.

Введение

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

AS, как четко определенная дисциплина, намного новее, чем обычно подозревали. Первые шаги были замечены в размышлениях Эдсгера Дейкстры в 1968 году об установлении правильного структурирования программных систем перед началом программирования. Позже на конференции НАТО в 1969 году П.И.Шарп сделал удивительный набор идей, комментируя идеи Дейкстры, определяющие разницу между разработкой и архитектурой программного обеспечения. До 90-х годов этот термин воспринимался по-разному, особенно тесно связанный с дизайном, говорили об уровне абстракции, однако элементы суждения позволяли утверждать о необходимости дисциплина и особая профессия.

Результаты и отражение

После библиографического анализа источников Томас Дж. Лейн «Изучение архитектуры программного обеспечения с помощью пространств и правил проектирования» был признан первой книгой, опубликованной SEI, по теме SA в 1990 году. В этом ряду он устанавливает определение AS, основанное на концепции, представленной Мэри Шоу в предыдущем году в ее книге «Системы более крупного масштаба требуют абстракций более высокого уровня», представленной на 5-м Международном семинаре по спецификации программного обеспечения и разработке. и опубликовано IEEE Computer Society. Лейн определяет AS как:

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

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

После этого вклада наблюдается заметная тенденция к поиску модели структурирования программного обеспечения, и разрабатывается набор моделей предметной области, основанный на общих схемах, таких как DSSA (доменные архитектуры программного обеспечения), подготовленные Mettala. и Грэм в 1992 году.

Только в 1994 году Мэри Шоу и Дэвид Гарлан опубликовали книгу «Введение в архитектуру программного обеспечения», в которой они утверждают, что из-за увеличения размера и сложности программных продуктов основная проблема больше не лежит. в алгоритмах и структурах данных, но нацелена на организацию компонентов, составляющих систему, тем самым вводя необходимость создания СА как научной дисциплины, объектом изучения которой является только определение набора парадигм, которые устанавливают организацию системы высокого уровня, взаимосвязь между различными составляющими ее компонентами и принципами, которые определяют ее дизайн и развитие.

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

Тема роли архитектора в процессе проектирования и разработки программного обеспечения не раскрывается, однако в последней главе книги, озаглавленной: «Прошлое, настоящее и будущее», раскрыта группа областей интересов. для последующего изучения дисциплины, среди которой выделяется «для достижения лучшего понимания роли архитектора в жизненном цикле процесса».

В этом же 1994 году, который можно считать «золотым годом архитектуры программного обеспечения», состоялось еще одно соответствующее архитектурное мероприятие. Мэри Шоу и Дэвид Гарлан запускают концепцию языков описания архитектуры (ADL) в своей книге «Характеристики языков высокого уровня для архитектуры программного обеспечения». Исследование указывает на альтернативы, которые были доступны до сих пор для определения SA системы. Во-первых, через модуляризацию существующих инструментов программирования и модулей связи между ними и, во-вторых, для описания их конструкций с использованием неформальных диаграмм и идиоматических фраз. Из этих размышлений они определяют набор закономерностей и специфических свойств, которые легли в основу ADL.

Исходя из этого, дисциплина получила все более широкое распространение, освещая серию событий, таких как книга Поля Клементса «Грядущая привлекательность в архитектуре программного обеспечения», в 1996 году, где он определяет пять фундаментальных тем, вокруг которых группирует дисциплину; проектирование или выбор архитектуры, представление, оценка и анализ архитектуры и т. д.

Другим важным событием стал запуск диссертации Роя Филдинга в 2000 году, в которой он представляет модель REST, которая окончательно устанавливает предмет интернет-технологий и сервис-ориентированных на ресурсы моделей в центре внимания. дисциплины. В том же году была опубликована окончательная версия рекомендации IEEE Std 1471, которая стремится унифицировать и упорядочить номенклатуру описания архитектуры и гомологизировать стили как фундаментальную модель концептуального представления.

Публикации SEI, относящиеся к AS, с 1990 года по настоящее время отражены в таблице ниже, отражающей создание сообщества, которое проводит научные исследования и разработки в этой области.

Выводы.

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

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

Библиография

  1. Лейн, Томас Г. Изучение архитектуры программного обеспечения через пространство и правила проектирования. Университет Карнеги-Меллона: Питтсбург, Пенсильвания, 15213, ноябрь 1990 г. http://www.sei.cmu.edu/pub/documents/90.reports/pdf/tr18.90.pdf. CMU / SEI-90-TR-18.D. Гарлан, М. Шоу. Введение в архитектуру программного обеспечения. Январь 1994 г. http://www.sei.cmu.edu/publications/documents/94.reports/94.tr.021.html. CMU / SEI-94-TR-021. Мэри Шоу, Дэвид Гарлан. Характеристика языков высокого уровня для программной архитектуры. Пенсильвания.: Институт программной инженерии, 1994. CMU / SEI-94-TR-023. Шоу, Мэри. Системы большего масштаба требуют абстракций более высокого уровня. sl: IEEE Computer Society, май 1989 г., с. 143-146. Том 14, том 3., Материалы пятого международного семинара по спецификации программного обеспечения. ACM SIGSOFT Software Engineering Notes.Fielding, Рой Томас.Архитектурные стили и проектирование сетевых программных архитектур. Калифорнийский университет Ирвин: sn, 2000. Докторская диссертация. Доп., Пол. Грядущие аттракционы в Software Arquitecture. Пенсильвания, США: Институт программной инженерии, Университет Карнеги-Меллона, январь 1996 г. CMU / SEI-96-TR-008. Эрик Меттала, Марк Х. Грэм. Программы для конкретной архитектуры программного обеспечения. sl: Специальный отчет, июнь 1992 года. CMU / SEI-92-SR-009.Специальный доклад, июнь 1992 года. CMU / SEI-92-SR-009.Специальный доклад, июнь 1992 года. CMU / SEI-92-SR-009.
Архитектура программного обеспечения как научная дисциплина