Опубликован: 12.10.2017 | Доступ: свободный | Студентов: 857 / 143 | Длительность: 07:43:00
Лекция 8:

Переход от концептуальных моделей к практике разработки востребованных и совершенствуемых программных продуктов

< Лекция 7 || Лекция 8: 123

Влияние архитектуры программного обеспечения на окружение

Любая информационная система находится в определенном окружении.

Окружение постоянно оказывает влияние на архитектуру программного обеспечения, так же как и программное обеспечение на окружение.

Этот факт также принято называть "архитектурой в контексте". Главным назначением окружения является то, что она определяет границы, в которых должна функционировать система.Это, в свою очередь, влияет на архитектуру предприятия в целом.

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

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

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

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

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

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

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

"Закон Конвея" гласит:" Если у вас есть 4 команды, разрабатывающие один компилятор, – вы получите компилятор, работающий в 4 прохода".

Зачастую архитектура приложения или совокупности систем непреднамеренно создается по подобию, которое является отражением организации, ее создающей.

Воплощение архитектуры на практике. Стратегия и практика

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

Перед тем как перейти к разработке отдельных функциональных компонентов, таких как

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

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

В рамках каждой организации целесообразно создать свой репозиторий шаблонов на основе хорошо зарекомендовавших себя практических решений.

Как показывает практика, характерное для предприятия число различных "переиспользуемых" шаблонов составляет порядка 30–50.

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

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

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

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

Подобные шаблоны объединяют:

  • описание разрабатываемого программного обеспечения.
  • операционную систему и прикладной используемый инструментарий;
  • определение используемого СУБД;
  • аппаратную платформу или несколько распределенных платформ;
  • интерфейсы;
  • описание потоков, используемых данных и пр.

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

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

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

< Лекция 7 || Лекция 8: 123